VIM真是一个神奇而又复杂的编辑器,让我这样的Linux编程新手茫然不已啊。每次到真正动手编程的时候才发现完全不知道该怎么操作VIM,一点都没感觉到VIM的强大,哈哈~~正好今天学习了一点VIM操作技巧,顺便记下来,一边日后不断积累不断提高。
一、复制、剪切、粘贴
(1)在命令模式下将光标移动到要复制的段开始位置,按下字母v进入可视模式,然后移动光标覆盖需要复制的内容,按下y完成复制,按下d完成剪切。再将光标移动到目标位置,按下字母p完成粘贴。
(2)在命令模式下,在目标行按下两次字母y,即yy完成行复制,两次字母d,即dd完成行剪切,再将光标移动到目标位置,按下字母p完成粘贴。
(3)在命令模式下,输入命令 “:起始行号,结束行号 y” 可以完成连续多行拷贝,然后将光标移动到目标位置按下p完成粘贴。
(4)在命令模式下,输入命令 “n1,n2w!/tmp/tmpfile” 可以把行号n1至行号n2的内容写入到/tmp/tmpfile文件中临时保存,然后将光标移动到目标位置,输入 “r /tmp/tmpfile” 把内容读进来。
(5)在插入模式下,将光标移动到需要插入内容的地方,然后用鼠标选中需要复制的内容,按下鼠标中键即可完成复制和粘贴,粘贴的位置就是刚才光标所在的位置。
一、代码注释
(1)连续多行注释
在命令行下输入如下命令:
:起始行号,结束行号s/被替换的字符/替换后的字符/g
例如在文件第10行至25行的行首位置插入#或者//时分别可以输入以下命令:
:10,25s/^/#/g
:10,25s/^/\/\//g
其中,^符号表示行首插入的意思,因为/在命令中用到了,所以要想输入 “//” 就必须用到两次转义字符 “\” 。g表示每次替换时不需要确认,如果希望确认,则将g替换成c即可。
(2)随意注释不连续的行
如果想要随意注释不连续的行,那么就要用到快捷键了。比如:可以为行首注释动作添加一个快捷键。添加快捷键的命令为:
:map ^P I//
其中,^P表示Ctrl + P,在输入此命令的时候要连续按下Ctrl + v + p才行,当然也可以不用p而设置其他字母。I// 表示在光标所在行的行首位置插入。取消此快捷键的方式为:
:unmap ^P
二、字符串自动补全
可以定义一个特殊的字符串补全,有时候会非常方便。设定替换语句的方式为:
:ab 快捷字符串 完整字符串
例如,可以为我的邮箱设定一个快捷字符串为KLH,在每次输入KLH之后按下回车或者空格就能变为我的邮箱地址了:
:ab KLH kuliuheng@126.com
三、执行系统命令
在VIM中完全可以直接执行SHELL命令而不需要退出VIM。执行的方法就是在命令模式下先输入!,然后接着输入命令即可。例如显示当前的工作路径:
:!pwd
如果想从外部的某个文件中导入文件内容,可以使用r命令,例如:
:r ../echoServer/main.cpp
引申一下,发现可以把两个命令结合在一起使用,使用方式为:r !系统命令。例如在文件中插入当前的系统时间:
:r !date
四、查看系统帮助
在需要查询的系统函数上,按下大字字母K即可转到帮助文件上,这是一种方法。
五、辅助功能
(1)目录浏览,输入:Ex
(2)分割窗口目录浏览,输入:Sex
(3)显示当前buffer情况,输入:ls
(4)显示当前打开的文件,输入:args
(5)光标回溯移动为Ctrl + c + p,光标前向移动为Ctrl + c + i,列出跳转历史为:ju
(6)如果需要将上述个性化设置保存,直接写入~/.vimrc 文件中即可。