作为程序员,使用vim配合下面这些插件,会很爽的,不过现在我还不太会用
a.vim
在.c/.h之间切换,写代码必备
bufexplorer.vim
列出当前打开的buffer,可以很容易的切换到和删除选定的buffer,必备插件之一
c.vim
c/c++ support,让你用编写c/c++程序时如虎添翼,有很多贴心的功能,每个功能都有快捷键
,不过一部分和NERD_comments冲突
如果经常编写一些单文件的c程序,但是不想写makefile,用这个,他帮你完成,F9编译并链接,
ctrl-F9运行
calendar.vim
日历插件,有了它,用vim来写日记很方便
lookupfile.vim
五星级推荐的好插件!我觉得它是vim上最伟大的插件之一,提供多种方式查找文件,让你在复
杂的目¼树中也能轻松自如找到你要的文件
taglist.vim
vim的代码浏览器,生成函数列表,支持跳转,可以根据光标λ置查询到当前的函数名,使用
vim的程序员必备!个人认为是最伟大的插件之一
vcscommand.vim
给vim整合了cvs/subversion功能,不用离开vim环境也能执行常用的cvs/subversion操作了
winmanager.vim
给vim增加IDE的功能,提供目录浏览和buffer浏览功能
VIM的使用
syntax on 语法高亮
set ignorecase 搜索的时候忽略大小写
set smartcase 搜索的时候至少包含一个大写字母时才对大小写敏感
set hlsearch 缩写形式为hls。搜索结果高亮
set incsearch 缩写形式为is。输入搜索命令时,立即显示目前输入的模式对应的匹配
set laststatus=2
set nobackup 不生成备份文件(~文件)
set showmatch 缩写形式为sm。显示括号匹配
set showmode 显示工作模式
set ru 打开 VIM 的状态栏标尺
set fo=tcqmM 即formatoptions。设置vim的文本格式
set ts=4 即tabstop。使tab键显示为4个空格
set et 即expandtab。把所有的制表符转换成空格
set sw=4 即shiftwidth。把缩进的长度设置为4
set fdm=marker 设置折叠方式为marker
《初学者简易.vimrc编写指南》http://edyfox.codecarver.org/html/_vimrc_for_beginners.html
set ignorecase 搜索的时候忽略大小写
set smartcase 搜索的时候至少包含一个大写字母时才对大小写敏感
set hlsearch 缩写形式为hls。搜索结果高亮
set incsearch 缩写形式为is。输入搜索命令时,立即显示目前输入的模式对应的匹配
set laststatus=2
set nobackup 不生成备份文件(~文件)
set showmatch 缩写形式为sm。显示括号匹配
set showmode 显示工作模式
set ru 打开 VIM 的状态栏标尺
set fo=tcqmM 即formatoptions。设置vim的文本格式
set ts=4 即tabstop。使tab键显示为4个空格
set et 即expandtab。把所有的制表符转换成空格
set sw=4 即shiftwidth。把缩进的长度设置为4
set fdm=marker 设置折叠方式为marker
《初学者简易.vimrc编写指南》http://edyfox.codecarver.org/html/_vimrc_for_beginners.html
#日志日期:2007-9-7 星期五(Friday) 晴
设置显示行号: :set number
取消显示行号: :set nonumber
set autoindent
set background=dark
:help w
:split
CTRL-W w 命令可以用于在窗口间跳转
:close
:only
:split file.name
:new
:vsplit
:qall (quit all)
:wqall
:qall!
vim -o one.txt two.txt three.txt 分窗口打开多个文件
取消显示行号: :set nonumber
set autoindent
set background=dark
:help w
:split
CTRL-W w 命令可以用于在窗口间跳转
:close
:only
:split file.name
:new
:vsplit
:qall (quit all)
:wqall
:qall!
vim -o one.txt two.txt three.txt 分窗口打开多个文件
单词替换
替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
"%" 范围前缀表示在所有行中执行替换。最后的 "g" 标记表示替换行中的所有匹配点。
如果你有一个象 "thirtyfour" 这样的单词,上面的命令会出错。这种情况下,这
个单词会被替换成 "thirty4"。要解决这个问题,用 "\<" 来指定匹配单词开头:
:%s/\<four/4/g
显然,这样在处理 "fourty" 的时候还是会出错。用 "\>" 来解决这个问题:
:%s/\<four\>/4/g
如果你在编码,你可能只想替换注释中的 "four",而保留代码中的。由于这很难指定,
可以在替换命令中加一个 "c" 标记,这样,Vim 会在每次替换前提示你:
:%s/\<four\>/4/gc
替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
"%" 范围前缀表示在所有行中执行替换。最后的 "g" 标记表示替换行中的所有匹配点。
如果你有一个象 "thirtyfour" 这样的单词,上面的命令会出错。这种情况下,这
个单词会被替换成 "thirty4"。要解决这个问题,用 "\<" 来指定匹配单词开头:
:%s/\<four/4/g
显然,这样在处理 "fourty" 的时候还是会出错。用 "\>" 来解决这个问题:
:%s/\<four\>/4/g
如果你在编码,你可能只想替换注释中的 "four",而保留代码中的。由于这很难指定,
可以在替换命令中加一个 "c" 标记,这样,Vim 会在每次替换前提示你:
:%s/\<four\>/4/gc
在 多 个 文 件 中 替 换
假设你需要替换多个文件中的单词。你的一个选择是打开每一个文件并手工修改。另外,如果使用 "记录-回放" 命令会更快。
假设你有一个包括有 C++ 文件的目录,所有的文件都以 ".cpp" 结尾。有一个叫"GetResp" 的函数,你需要把它改名为 "GetAnswer"。
vim *.cpp 启动 Vim,用当前目录的所有 C++ 文件作为文件参数。启动后你会停在第一个文件上。
qq 用 q 作为寄存器启动一次记录。
:%s/\<GetResp\>/GetAnswer/g 在第一个文件中执行替换。
:wnext 保存文件并移到下一个文件。
q 中止记录。
@q 回放 q 中的记录。这会执行又一次替换和
":wnext"。你现在可以检查一下记录有没有错。
999@q 对剩下的文件执行 q 中的命令
Vim 会在最后一个文件上报错,因为 ":wnext" 无法移到下一个文件上。这时所有的文件中的操作都完成了。
备注:
在回放记录的时候,任何错误都会中止回放的过程。所以,要注意保证记录中的命令不会产生错误。
这里有一个陷阱:如果有一个文件不包含 "GetResp",Vim 会报错,而整个过程会中止,要避免这个问题,可以在替换命令后面加一个标记:
:%s/\<GetResp\>/GetAnswer/ge
"e" 标记通知 ":substitute" 命令找不到不是错误。
假设你需要替换多个文件中的单词。你的一个选择是打开每一个文件并手工修改。另外,如果使用 "记录-回放" 命令会更快。
假设你有一个包括有 C++ 文件的目录,所有的文件都以 ".cpp" 结尾。有一个叫"GetResp" 的函数,你需要把它改名为 "GetAnswer"。
vim *.cpp 启动 Vim,用当前目录的所有 C++ 文件作为文件参数。启动后你会停在第一个文件上。
qq 用 q 作为寄存器启动一次记录。
:%s/\<GetResp\>/GetAnswer/g 在第一个文件中执行替换。
:wnext 保存文件并移到下一个文件。
q 中止记录。
@q 回放 q 中的记录。这会执行又一次替换和
":wnext"。你现在可以检查一下记录有没有错。
999@q 对剩下的文件执行 q 中的命令
Vim 会在最后一个文件上报错,因为 ":wnext" 无法移到下一个文件上。这时所有的文件中的操作都完成了。
备注:
在回放记录的时候,任何错误都会中止回放的过程。所以,要注意保证记录中的命令不会产生错误。
这里有一个陷阱:如果有一个文件不包含 "GetResp",Vim 会报错,而整个过程会中止,要避免这个问题,可以在替换命令后面加一个标记:
:%s/\<GetResp\>/GetAnswer/ge
"e" 标记通知 ":substitute" 命令找不到不是错误。
* 如果打开一个已经存在的文件, 并不会将已有的 Tab 替换为空格。 如果希望进行这样的替换的话, 可以使用这条命令“:retab”。
set cin
打开 C/C++ 风格的自动缩进。 打开了自动缩进后, 在编码的时候可以使用“V”命令选中一段文本后,按“=”将这段文本重新调整缩进格式, 在一定程度上起到代码美化的作用。
set cin
打开 C/C++ 风格的自动缩进。 打开了自动缩进后, 在编码的时候可以使用“V”命令选中一段文本后,按“=”将这段文本重新调整缩进格式, 在一定程度上起到代码美化的作用。
:e! 重新载入文件
跳转到标准头文件;
step1:
# cd /tmp
# ctags -R /usr/include/
step2:
#vi .vimrc
#tags+=/tmp/tags
step1:
# cd /tmp
# ctags -R /usr/include/
step2:
#vi .vimrc
#tags+=/tmp/tags
sudo apt-get install exuberant-ctags
.vimrc
set tags=tags;
末尾加 ";",设置在当前目录及所有上层目录中寻找 tags 文件这样的话,在源码的最上层目录 ctags -R 创建 tags,就能够方便的进行标签跳转了
ctags -R
ctrl+], ctrl+k, ctrl+o
.vimrc
set tags=tags;
末尾加 ";",设置在当前目录及所有上层目录中寻找 tags 文件这样的话,在源码的最上层目录 ctags -R 创建 tags,就能够方便的进行标签跳转了
ctags -R
ctrl+], ctrl+k, ctrl+o
列(块)选择: v
将选中的的块右移tab >>,左移tab <<
将一个blcok(以(),[],{}为单位)右移 >%, 左移<%
将选中的的块右移tab >>,左移tab <<
将一个blcok(以(),[],{}为单位)右移 >%, 左移<%
'#' 向下搜索当前单词
'*' 向上搜索当前单词
'*' 向上搜索当前单词
列操作
ctrl+v
Shift + I
for example: cvs add
Esc
ctrl+v
Shift + I
for example: cvs add
Esc
将二进制文件,转换为Hex表示。
:%!xxd
:%!xxd
Makefile 需要tab
# set no expandtab
# set no expandtab
vi +num filename