Vim 操作中需要掌握的一些基本常识

1. 在linux中为vim设置全局变量
set nu           #显示行号
syntax on        #设置语法高亮显示
set tabstop=4    #设置(软)制表符宽度为4
set softtabstop=4#设置(软)制表符宽度为4
set shiftwidth=4 #设置缩进的空格数为4
set autoindent   #设置自动缩进
set cindent      #设置使用 C/C++ 语言的自动缩进方式:
(centos中是 etc/vimrc中修改,而ubuntu好像是在~/.vimrc 文件中)

2.Linux是严格区分大小写的,这点跟Java很像。个人比较喜欢。

3.使用ctags在vim中辅助查阅文档
Vi大家都很熟悉,某些情况下它是我们在Linux下唯一可用的文本编辑器。其实我们平时所指的VI其实是VIM(Vi Improved,VI增强版)。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。 VIM简单易用,只要看看VIM自带的 vitutor,大约只要20分钟就能掌握VIM的用法。对于Linux下的C/C++的程序员,使用VIM+Ctags的组合来写程序也许是最佳的选择。
1. $ ctags –R *      ($ 为Linux系统Shell提示符)
2. $ vi –t tag       (请把tag替换为您欲查找的变量或函数名)
3. :ts   (ts 助记字:tags list)
4. :tp   (tp 助记字:tags preview)(此命令不常用,可以不用记)
5. :tn   (tn 助记字:tags next)   (此命令不常用,可以不用记)
6. ctrl + ](跳到光标定位的变量申明或者定义中去)
7. ctrl + t(跳转回来)
8.  ctrl + o(直接跳回到原来的变量处)

4. 分裂显示Vim编辑器
vim #打开vim 编译器
:split test.c #这样横向打开另一个窗口
:vsplit test.c #纵向打开另一个窗口
:ctrl + w hjkl #在不同的窗口切换
:close        #关闭某个窗口
:only         #关闭除此之外的其他窗口
:qall  :wall   #退出,保存所有的窗口

5. Vim中的一些基本的比较重要的操作
hjkl #左下上右
x u dd U #分别是删除一个字符 恢复上一次删除操作的内容  删除一行内容  恢复整行的删除操作  撤销撤销操作
i a o#在光标之前/之后/之后下一行 插入字符
I A O#当前行首/行尾/之前一行 插入字符
J #将下一行和当前行合并

----数字 + 命令  #命令执行的次数----

ZZ  # 保存并且退出vim编译器
:q!#放弃修改 并返回控制台
:e! #放弃修改 返回文档内容

w b e ge # 下一个wod /前一个wod / 下一个wod的末尾 / 前一个wod的末尾
$ ^ 0 # 行尾/行前(非空)/行首
数字%     # 跳到大概百分之多少的位置
H  M  L    #到达当前屏幕显示的头/中间/尾 的位置
ctl +u d e y f b   #  分别是向上/下移动屏幕10行  向下/上移动一行 向下/上移动一整屏
zt zb   # 分别是将当前行置顶/底
*  #    #当光标放在某个单词上的时候  这样可以向下/向上找到一样的单词,完全匹配
g*  g#  #匹配在其中的单词.比如  当光标听在the上的时候,thee也四匹配的
f F # 在右、左方向上搜索 字符
? /      # 是在文档中向前/向后查找字符串
    序: 在查找字符串的时候  加上\<  或者  \>  表示字符串的开始和结束 这样  单词便可以完全匹配

d+位移运算符     #删除操作   如:
#d4w 删除当前位置向后的4个单词
  #d$  删除当前位置到行末尾
c+位移运算符    #删除操作并且进入inset模式  这样可以更改内容   如:
#c2wbe    将当前位置后面的两个单词去掉并且被be替换掉

d命令: x dd D dG  删除 一个字符/一行/到行尾/到文件尾
c命令: s cc C cG  修改 一个字符/一行/到行尾/到文件尾
y命令: y yy Y yG  复制 一个字符/一行/一行/到文件尾 #Y是yy,复制一整行
r #替换字符

p  P 命令:#粘贴。实际上x和d、dd等的操作之后  被删除的内容是被保存了起来的,这样使用p的话 就可以put过来

6. 三个技巧
    1)%s/\<four\>/4/gc  #将所有的four替换成4并且在替换每一个的时候询问你
%s对所有的行执行该命令
g替换
c进行询问
    2)将所有的.cpp文件中的GetRes 被 GetAnswer 替换
vim *.cpp   #启动vim  现在将编辑的是第一个文件
qq          #开始宏记录
:%s/\<GetRes\>/GetAnswer/ge #在第一个文件中执行该操作   e表示即使没有找到也不停止宏的执行
:wnext      #保存该文件并转到下一个文件进行编辑
q           #停止宏记录
@q          #执行名为q的宏
999@q       #对其余的文件执行同样的操作
    3)%s/\s\+$//        #删除行尾的空格

猜你喜欢

转载自hanyuanbo.iteye.com/blog/751179