一、移动光标
- h j k l上 下 左 右
- ctrl-y上移一行
- ctrl-e下移一行
- ctrl-u上翻半页(up)
- ctrl-d下翻半页(down)
- ctrl-f上翻一页(forward)
- ctrl-b下翻一页(backward)
- w跳到下一个字首,按标点或单词分割
- W跳到下一个字首,长跳,如end-of-line被认为是一个字
- e跳到下一个字尾
- E跳到下一个字尾,长跳
- b跳到上一个字
- B跳到上一个字,长跳
- 0跳至行首,不管有无缩进,就是跳到第0个字符
- ^跳至行首的第一个字符
- $跳至行尾
- gg跳至文首
- G调至文尾
- 5gg/5G调至第5行
- gd跳至当前光标所在的变量的声明处
- fx在当前行中找x字符,找到了就跳转至
- ;重复上一个f命令,而不用重复的输入fx
- *查找光标所在处的单词,向下查找
- #查找光标所在处的单词,向上查找
二、删除复制
- dd删除光标所在行
- dw删除一个字(word)
- d/D删除到行末
- x删除当前字符
- X删除前一个字符
- yy复制一行
- yw复制一个字
- y/Y复制到行末
- p粘贴粘贴板的内容到当前行的下面
- P粘贴粘贴板的内容到当前行的上面
三、插入模式
- i从当前光标处进入插入模式
- I进入插入模式,并置光标于行首
- a追加模式,置光标于当前光标之后
- A追加模式,置光标于行末
- o在当前行之下新加一行,并进入插入模式
- O在当前行之上新加一行,并进入插入模式
- Esc退出插入模式
四、编辑
- J将下一行和当前行连接为一行
- cc删除当前行并进入编辑模式
- cw删除当前字,并进入编辑模式
- c$擦除从当前位置至行末的内容,并进入编辑模式
- s删除当前字符并进入编辑模式
- S删除光标所在行并进入编辑模式
- xp交换当前字符和下一个字符
- u撤销
- ctrl+r重做
- ~切换大小写,当前字符
- >>将当前行右移一个单位
- <<将当前行左移一个单位(一个tab符)
- ==自动缩进当前行
五、查找替换
- /pattern向后搜索字符串pattern
- ?pattern向前搜索字符串pattern
- “\c”忽略大小写
- “\C”大小写敏感
- n下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
- N上一个匹配(同上)
- :%s/old/new/g搜索整个文件,将所有的old替换为new
- :%s/old/new/gc搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
六、退出编辑器
- :w将缓冲区写入文件,即保存修改
- :wq保存修改并退出
- :x保存修改并退出
- :q退出,如果对缓冲区进行过修改,则会提示
- :q!强制退出,放弃修改
七、多文件编辑
- vim file1..同时打开多个文件
- :args显示当前编辑文件
- :next切换到下个文件
- :prev切换到前个文件
- **:next!**不保存当前编辑文件并切换到下个文件
- **:prev!**不保存当前编辑文件并切换到上个文件
- :wnext保存当前编辑文件并切换到下个文件
- :wprev保存当前编辑文件并切换到上个文件
- :first定位首文件
- :last定位尾文件
- ctrl+^快速在最近打开的两个文件间切换
- :split[sp]把当前文件水平分割
- :split file把当前窗口水平分割, file
- :vsplit[vsp] file把当前窗口垂直分割, file
- :new file同split file
- :close关闭当前窗口
- :only只显示当前窗口, 关闭所有其他的窗口
- :all打开所有的窗口
- :vertical all打开所有的窗口, 垂直打开
- :qall对所有窗口执行:q操作
- :qall!对所有窗口执行:q!操作
- :wall对所有窗口执行:w操作
- :wqall对所有窗口执行:wq操作
- ctrl-w h跳转到左边的窗口
- ctrl-w j跳转到下面的窗口
- ctrl-w k跳转到上面的窗口
- ctrl-w l跳转到右边的窗口
- ctrl-w t跳转到最顶上的窗口
- ctrl-w b跳转到最底下的窗口
八、多标签编辑
- :tabedit file在新标签中打开文件file
- :tab split file在新标签中打开文件file
- :tabp切换到前一个标签
- :tabn切换到后一个标签
- :tabc关闭当前标签
- :tabo关闭其他标签
- gt到下一个tab
- gT到上一个tab
- 0gt跳到第一个tab
- 5gt跳到第五个tab
九、执行shell命令
- 在命令模式下输入”:sh”,可以运行相当于在字符模式下,到输入结束想回到VIM编辑器中用exit,ctrl+D返回VIM编辑器
- 可以”!command”,运行结束后自动回到VIM编辑器中
- 用“Ctrl+Z“回到shell,用fg返回编辑
- :!make-> 直接在当前目录下运行make指令
十、VIM启动项
- -o[n]以水平分屏的方式打开多个文件
- -O[n]以垂直分屏的方式打开多个文件
十一、自动排版
在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定
十二、如何在vim中编译程序
在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen命令,将结果输出的窗口打开,然后执行 :make
编译后的结果就显示在了copen打开的小窗口里了,而且用鼠标双击错误信息,就会跳转到发生错误的行。
十三、buffer操作
buffer状态
- –(非活动的缓冲区)
- a(当前被激活缓冲区)
- h(隐藏的缓冲区)
- %(当前的缓冲区)
- #(交换缓冲区)
- =(只读缓冲区)
- +(已经更改的缓冲区)
十四、 VIM 操作目录
1.打开目录
- vim .
- vim a-path/
2.以下操作在操作目录时生效
p,P,t,u,U,x,v,o,r,s
- c使当前打开的目录成为当前目录
- d创建目录
- %创建文件
- D删除文件/目录
- –转到上层目录
- gb转到上一个 bookmarked directory
- i改变目录文件列表方式
- ^l刷新当前打开的目录
- mf– 标记文件
- mu– unmark all marked files
- mz– Compress/decompress marked files
- gh显示/不显示隐藏文件( dot-files)
- ^h编辑隐藏文件列表
- a转换显示模式, all – hide – unhide
- qfdiplay infomation about file
- qblist the bookmarked directories and directory traversal history
- giDisplay information on file
- mb
- mc
- md– 将标记的文件(mf标记文件)使用 diff 模式
- me– 编辑标记的文件,只显示一个,其余放入 buffer 中
- mh
- mm– move marked files to marked-file target directory
- mc– copy
- mp
- mr
- mt
vim 中复制,移动文件
- mt– 移动到的目录
- mf– 标记要移动的文件
- mc– 移动/复制
R移动文件
打开当前编辑文件的目录
- :Explore
- :Hexplore
- :Nexplore
- :Pexplore
- :Sexplore
- :Texplore
- :Vexplore
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1543690857@qq.com 举报,一经查实,本站将立刻删除。