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行的行首位置插入#或者//时分别可以输入以下命令:

:,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@.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 文件中即可。

最新文章

  1. Bubble Cup 8 finals B. Bribes (575B)
  2. 挖掘微信Web版通信的全过程 [转]
  3. JQuery 技巧积累与总结
  4. 开源实体映射框架EmitMapper介绍
  5. openflashchart + flex
  6. git push冲突解决
  7. sqlserver 中的GUID 全局唯一标识 -摘自网络
  8. PXC的原理
  9. iOS绘图教程
  10. 上传python包到PyPI
  11. COM实现过程
  12. JS数据绑定模板artTemplate试用
  13. Hex Workshop(16进制编辑利器) 6.7.2绿色版
  14. android弹力效果菜单、组件化项目、电影票选座控件的源码
  15. Redis server went away的解决方案
  16. php 加密 解密 密码传输
  17. python中url解析 or url的base64编码
  18. hdu1181 (变形课)简单地dfs
  19. jenkins的流水线pipeline+项目实验php
  20. box-shadow 边框样式

热门文章

  1. 解决两台虚拟机互ping可通,但connect失败
  2. Notes of Linked Data concept and application - TODO
  3. poi 合并单元格 无边框问题
  4. linux 安装redis
  5. 目标跟踪之Lukas-Kanade光流法
  6. knockoutJs基础1 - 简单的knockoutjs实现
  7. strlen() 函数
  8. JDBC getMetaData将结果集组装到List
  9. GBG java
  10. Memory Barriers ,cache-coherency