免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1023 | 回复: 0
打印 上一主题 下一主题

vi编辑器命令大全-2 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-26 17:52 |只看该作者 |倒序浏览


             vi编辑器命令大全-2



快捷键义:
if version >= 600
"查找
"map  /
"查找函数原型
map  yiw/^\(\s\)*\(sub\)\|\(function\)\(\s\)*"
"继续查找
map  n
"使用显示类、属性、方法列表
map  :Tlist
" 用compiler定义的编译程序来编译当前程序
"map  :make "%"
"使用来进行php语法检测
map  :!php -l "%"
map ;w :call FormatText()
"查找当前光标下的字
map  /
endif
"""""""""""::快捷键定义"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""格式化文件"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function FormatText()
:%s/\t/ /g "把\t换成4个空格
:%s/ *$//g "去掉行尾空格
endfunction
"""""""""""格式化文件"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""显示行尾的tab和多余空格"""""""""""""""""""""""""""""""""""""""""""""""
set listchars=tab:>-,trail:~
set list
syntax match Trail " +$"
highlight def link Trail Todo
""""""""""::显示行尾的tab和多余空格"""""""""""""""""""""""""""""""""""""""""""""
function LastMod()
if line("$") > 5
let l = 5
else
let l = line("$")
endif
exe "1," . l . "/CnsProgCMTime/s/CnsProgCMTime .*/CnsProgCMTime " . strftime("%Y-%m-%d %H:%M:%S")."/e"
endfunction
"map  :call LastMod()
"""""""""""自动加注释的*星号""""""""""""""""""""""""""""""""""""""""""""""""""""
"使用如/* ... */ 的注释时,r在插入模式下回车时插入* ;
"o 在普通模式下,使用 "o" 或 "O" 时插入*
:set formatoptions=tcro
"""""""""""::自动加注释的*星号""""""""""""""""""""""""""""""""""""""""""""""""""
vi扩展的正则表达式
| 指示交替,如home|house 指匹配home或house
() 用于分组,如home|house可以写为ho(me|use)
*可以用到()上(home|house)* 可以匹配home, homehouse,househome, homehousehomehouse
\(...\) 实际匹配的文本可以使用、等在替换命令的替换部分进行检索
+ 可匹配正则表达式的一次或多次出现,既可以是单个字符也可以是()或\(...\)括起的内容,至少匹配一次
ho(use|me)+ 指至少是house或home不允许是空
? 指前面正则表达式的零次或一次出现,表示出现或未出现。如free?d 将匹配fred或freed除此不能匹配其他文本
定义区间表达式。区间表达式描述了表示重复次数的计数数字。 同\
(home|house) 只能匹配homehome, homehouse, househome, househouse
编译相关
·用编译器来编译 当前文件
:!perl -c %
:!php -l % 用php来检查错误
:!php -q % 用php来运行程序
·编译当前程序为a.out并执行该./a.out
:!gcc % -o a.out && ./a.out
执行结果
old umask is %#0
new umask is %#0
·编译错误信息
:cl! 列出所有错误信息的详细列表
:cl 列出当前条错误信息
:cn 列出下一条错误信息
:cp 列出上一条错误信息
:cnew 最新错误信息条数
:cold 旧的错误信息条数
:cwin 或 :copen 打开错误信息窗口
:cclose 关闭上面打开的信息窗口
自动补齐
CTRL-X CTRL-F 文件名
CTRL-X CTRL-L 整行
CTRL-X CTRL-D 宏定义 (并搜索所包含的文件)
CTRL-X CTRL-I 当前文件以及所包含的文件
CTRL-X CTRL-K 词典文件内的单词
CTRL-X CTRL-T 近义词词典文件内的单词
CTRL-X CTRL-] 标记
CTRL-X CTRL-V Vim 命令行
C程序设计
gd 反色显示光标下局部标识符串的所有出现,并转到第一次出现处。
gD 反色显示光标下全局标识符串的所有出现,并转到第一次出现处。
--------------------------------------------------------------------------------------
:checkpath 列出所有include的头文件
--------------------------------------------------------------------------------------
[i 显示函数定义
extern __mode_t umask (__mode_t __mask) __THROW;
--------------------------------------------------------------------------------------
[+CTRL+i 跳转到[i所标识的函数定义处
--------------------------------------------------------------------------------------[I 列出当前文件及包含文件内的含有当前字符的行
--------------------------------------------------------------------------------------[d 显示由#define所定义的标识符的定义语句
printf(|tom);
#define tom "yaoshuyin"
--------------------------------------------------------------------------------------
CTRL+] 跳转到光标当前位置的标签处 (例如:一个函数的定义)。
CTRL+T 跳转到执行 CTRL-] 命令前的地方。
:tselect 从一连串匹配的标签中选出一个。
[/ 跳转到注释开始的位置。
]/ 跳转到注释结束的位置。
----------------------------------------------------------------
[# 返回到未闭合的 #if, #ifdef, or #else 处。
]# 前进到未闭合的 #else 或 #endif 处。
[( 返回到未闭合的 '(' 处。
)) 前进到未闭合的 ']' 处。
[{ 跳转到最近对应的 '{' 处。
}} 跳转到最近对应的 ']' 处。
·字符集和进制转换
ga 显示光标处字符的ascii,hex,oct,...晕菜的一堆转换
如 s 前按ga
115, Hex 73, Octal 163
列块操作
选中列块
I 在块的每一行首加上string
A 在块的每一行尾加上string
C 修改选中的列块(即删除并输入新内容 )
c 修改选中的列块(即删除并输入新内容 )
> 左移Tab宽度
vimrc中的文件名及路径
如在D:\cnscnprogrames\Vim\vim63\下编辑 vi tmp\file.java (即D:\cnscnprogrames\Vim\vim63\tmp\file.java)
expand("%") #tmp\file.java
expand("%:p") #D:\cnscnprogrames\Vim\vim63\tmp\file.java
expand("%:h") #tmp
expand("%:t") #file.java
expand("%:e") #java
expand("%:t:r") #file
expand("%:r") #tmp\file
·一个简单编译器(编译、执行常见程序)
#vi ~/.vimrc
"定义F9来编译、执行程序
map  :call ProgCompileRun()
func ProgCompileRun()
"save the current file first
:w
"取得程序后缀名 如java php pl py
let ext = expand("%:e")
"编译Java
if ext == "java"
if expand("%:h") != ""
:!javac % && java -classpath expand("%:h") %:t:r
else
:!javac % && java %:t:r
endif
return
endif
"执行php
if ext == "php"
:!php %
return
endif
"编译执行c/cc/cpp
if ext == "c" || ext == "cc" || ext == "cpp"
:!gcc % -o a.out && ./a.out
return
endif
"编译执行perl
if ext == "pl"
:!perl -c %
return
endif
"编译执行python
if ext == "py"
:!python %
return
endif
endfunc
perfectman 2008-1-1 13:09


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/76389/showart_1149458.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP