vim 使用技巧小结

来源:互联网 发布:淘宝店铺等级最高 编辑:程序博客网 时间:2024/05/16 14:40

文章出处:http://blog.csdn.net/shift_wwx


一、当前行移动光标

fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用来重复你的上一个 f 命令。
tx:和上面的命令类似,但是是移动到 x 的左边一个位置。
Fx:和 fx 类似,不过是往回找。
w:光标往后移动一个词。

W:光标向后移动一个词,忽略标点

b:光标往前移动一个词。

B:光标往前移动一个词,忽略标点

0:移动光标到当前行首。
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。
):移动光标到下一个完整句子。
(:移动光标到上一个完整句子。

{:移动光标到上一个完整段落

}:移动光标到下一个完整段落


二、文件内移动光标

<C-F>:向下移动一屏。
<C-B>:向上移动一屏。

<C-U>:向上移动半屏

<C-D>:向下移动半屏

G:到文件尾

numG:移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
*:读取光标处的字符串,并且移动光标到它再次出现的地方。
#:和上面的类似,但是是往反方向寻找。
/text:从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n。
?text:和上面类似,但是是反方向。
ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。


三、高效输入

VIM 有一个非常漂亮的关键词自动完成系统,只要输入关键词的前几个字符,就可以自动补齐。
<C - N> 列出一个跟输入字符相符合的字串,连续按可以在list中选择。
<C - P> 跟上面一样,只不过上面是向下选择字串,它是向上选择。


四、插入模式

i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
c{motion}:删除 motion 命令跨过的字符,并且进入插入模式
比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式
ct!,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。
d{motion}:和上面差不多,但是不进入插入模式。


五、编辑命令

d{motion}:剪切 motion 命令跨过的字符到剪贴板。比如,dw 会剪切一个词而 dfS 会将从当前光标到下一个 S 之间的字符剪切至剪贴板。
y{motion}:和上面类似,不过是拷贝。
c{motion}:和 d{motion} 类似,不过最后进入插入模式。
dd:剪切当前行。
yy:拷贝当前行。
cc:剪切当前行并且进入插入模式。
D:剪切从光标位置到行尾到剪贴板。
Y:拷贝当前行。
C:和 D 类似,最后进入插入模式。
x:剪切当前字符到剪贴板。
s:和x类似,不过最后进入插入模式。
这些很好记忆,d、c都是剪切,y是复制,c是可以进入插入模式。x、s应该用的比较少。


p:粘贴


六、选择

还有跟剪切、复制配合使用的一个特别好用的技巧,那就是选择,不再需要鼠标去选中了。
v{motion}:按字符选择,例如,vl,就是向右选择字符;vj就是向下选择;vww,就是选择两个字符串
V{motion}:按行选择,一般配合上下,例如Vj 、Vk
<C - V>:按块选择
选择好了之后,剪切就按d,复制就按y,如果想进入插入模式就按c


七、神奇的 . 命令

重复上一次编辑命令。

如果删除一个符号,例如dl,再想继续删除的话,是继续dl吗?有个神奇的符号 . (小数点),可以代替做重复的命令。


八、数字使用

数字配合命令的使用,会经常用到,而且很快捷。
例如:
4w:移动到第4个词
4l:移动到第4个字符
4G:移动到第4行
4dd:剪切4行
4yy:复制4行

4x:剪切4个字符

4s:剪切4个字符,并插入

命令掌握ok了,加上数字会很快捷。


九、查看

/xxx:表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找。其中xxx可以是正规表达式,关于正规式就不多说了。一般来说是区分大小写的,要想不区分大小写, 那得先输入:set ignorecase。

?xxx:向上查找

n:搜索后查找下一个匹配的字符串

N:向上搜索匹配的字符串

*:搜索下一个跟光标处匹配的单词,以后通过n、N来继续找

#:跟 * 相反

g*:跟 * 差不多,只不过是搜索的是包含光标处单词

g#:同上

gd:同上,只不过光标会到第一个匹配的单词

%:匹配括号


十、替换

格式:

:[g]/search_string/s//replace_string/[g][c]

第一个g是全文搜索,第二个g是匹配行中所有匹配点,没有这个g就指第一次匹配点,c表示在替换之前需要用户确认

:s/aa/bb/g       将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb

:s/aa/bb/         将光标所在行第一次出现aa的字符串中的aa替换为bb

:n,$s/aa/bb/g 将从n行到最后一行的包含aa的字符串中aa替换为bb

:%s/aa/bb/g   将全文中所有行出现包含aa的字符串中aa替换为bb

:%s/aa/bb/     将全文中所有行第一次出现包含aa的字符串中aa替换为bb

:n1,n2s/aa/bb/g     将从n1到n2行出现的所有aa替换成bb

:n1,n2s/^/#/      将从n1行到n2行,所有行的开头加上 # 号

还有个特殊字符:^M

由于windows和linux系统使用的行终止符号不同,对于linux系统而言,取自Dos或windows系统文本文件会包含多余的回车字符,需要去掉,用命令:

:1,$s/^M//

注意在linux下^M不是简单的^和M,而是要ctrl+v 和 ctrl+M才能组成的特殊字符


其他的替换可以参考一下http://blog.163.com/ccbobo_cat/blog/static/3209946220090851034518/


十一、多文件编辑

在一个 vim 程序中打开很多文件进行编辑是挺方便的.
   :sp(:vsp) 文件名     vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.
                                    从 vim6.0 开始, 文件名可以是一个目录的名称, 这样, vim 会
                                    把该目录打开并显示文件列表, 在文件名上按回车则在本窗口打
                                    开该文件, 若输入 O 则在新窗口中打开该文件, 输入 ? 可以看到帮助信息.

   :e 文件名            vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存。

   ctrl-w-w               vim 分割了好几个窗口怎么办? 输入此命令可以将光标循环定位到各个窗口之中。

                                或者ctrl+w+h:切左边窗口

                                        ctrl+w+l:切右边窗口

                                        ctrl+w+上方向键:切上边窗口

                                        ctrl+w+下方向键:切下边窗口

   :ls                  此命令查看本 vim 程序已经打开了多少个文件, 在屏幕的最下方
                       会显示出如下数据:
                       1    %a       "usevim.html"          行 162
                       2    #        "xxxxxx.html"          行 0
                       其中:
                       1                表示打开的文件序号, 这个序号很有用处.
                       %a               表示文件代号, % 表示当前编辑的文件,
                                       # 表示上次编辑的文件
                       "usevim.html"    表示文件名.
                       行 162           表示光标位置.
  

   :b 序号(代号)        此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)

                                  就是用 :ls 命令看到的.

   :set diff            此命令用于比较两个文件, 可以用

                           :vsp filename命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看到效果了。


十二、设置环境变量

将下面的环境直接copy到/etc/vimrc.local 里面

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8set fileencodings=ucs-bom,utf-8,cp936set fileencoding=utf-8" 不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on" 在处理未保存或只读文件的时候,弹出确认set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 在行和段开始处使用制表符set smarttab" 显示行号set number" 历史记录数set history=1000"禁止生成临时文件set nobackupset noswapfile"搜索忽略大小写set ignorecase"搜索逐字符高亮set hlsearchset incsearch" 高亮显示匹配的括号set showmatch

十三、其他命令

u:撤销之前的修改

<C - r>:还原之前撤销的修改,u撤销后,可以用此还原

:f 或 CTRL+G :查看当前打开文件的详细路径和文件名













0 0
原创粉丝点击