vim
vim 编辑器常用命令,命令均在normal模式下可用,非编辑模式。
插入
- i 在光标前插入
- I 当前光标首行
- a 在光标后插入
- A 当前光标最后行尾
- O 当前光标上一行插入新的
- o 在光标处换行插入
缩进
- :>> / :> 右缩进
- :<< / :<
- :m,n> m到n行缩进
- :m>(n-m + 1)
- :m>n / :m,m+n -1 m行开始缩进n行
翻页
- ctrl +f/F 下一页
- ctrl + b/B 上一页
- Ctrl + d 下翻半页
- Ctrl + u 上翻半页
删除
- X 向前删除一个字符
- x 向后删除一个字符
- nx/X 向后或向前删除几个字符
- dd 删除光标所在一行
- ndd 删除光标所在向下n行
- d1G 删除光标所在行致第一行
- dG 删除光标所在行致行尾
- dw 删除一个单词
- d{hjkl} 删除光标对应方向上的单词
- d^ 删除光标到行首
- d$ 删除光标到行尾
- 5dw 删除正向单词5次
- 3w 移动单词三次
- D3w 正向删除2次
- 2d3w 正向删除3w 动作两次
替换
- r 只替换光标所在行对应字符一次,第一次匹配替换
- R 会一直替换 到退出编辑为止
保存
- :w 保存文件
- :w! 若文件只读,强制保存
- :q 离开编辑(不做保存如果有编辑,系统会提示是否保存)
- :q! 强制离开不保存
- :wq 保存并离开
- :wq! 强制保存并离开
- :w newfile 另存为
退出编辑
- ESC 退出编辑
复制
- yy 复制当前一行
- y0 复制当前行致该行行首
- nyy 复制当前行下n行
选择块
- v/V 进入visual 模式选择块
- y 进行块复制
- d 删除选择块
- y 复制选择块
- yw 复制当前光标单词标单词
- y2w 复制当前光标两个单词
粘贴
撤销
- u 撤销上一操作
- Ctrl + r 多次撤销
- . 重复上一个动作
光标移动
- h 向左移动
- j 向下移动
- k 向上移动
- l 向右移动
- 0/Home 光标移到当前行首
- $/End 光标移到当前行尾
- G 光标移至文件最后一行行首
- [n]G 光标移至文件第n行
- gg 光标移至文件首行(1G)
- n[Enter] 光标下移n行
- w 往后移到下一个字符包含特殊字符串
- W 往后移到下一个字符不包含特殊字符串
- 0 移动到行首
- ^ 移动到行首不包含缩进
- b/B 反向移动(===left)
- e/E 正向移动到下一词尾
- ge 反向移动
缓冲区
- ls
- buffers
- files
- bf 第一个缓冲区
- bn 下一个缓冲区
- bp 上一个缓冲区
- bl 最后一个缓冲区
- buffer Number/fiel_name 指定缓冲区
- ball 编辑所有缓冲区
- qall 退出所有
- badd fiel 添加新的缓冲区
- wall 编辑所有
- bd file 删除
- ctrl + ^/b# 切换到前一个缓冲区
- %bd 删除所有
组合键
- Ctrl + f 屏幕下移一页(pageDown)
- Ctrl + b 屏幕上移一页(pageUp)
其他命令
- :set nu 显示行号
- :set nonu 不显示行号
- :set fileencoding 查看当前编码
- :set fileencoding=utf-8 设置当前编码
- :set fileformat 查看当前格式(Unix/macintosh,dos/windowns)
- :set fileformat=unix 设置当前格式(Unix/macintosh,dos/windowns)
- :n 查看下一个文件
- :N 查看上一个文件
- vim file1 file2 … 打开多个文件
- :sp file1 打开一个新的文件
- :files 列出所有打开的文件
- :buffers
- :ls
窗口切换
- Ctrl + w + j 光标移到下移窗口
- Ctrl + w + k 光标移到上一个窗口
- Ctrl + w + q 离开当前窗口
vim 文件配置
在
~
下创建.vimrc
- set nu : 显示行号
- set nonu 隐藏行号
- :reg 打开寄存器
- bufdo {cmd} eg: bufdo set nonu
窗口
- vim o/On 垂直、水平打开文件
- ctrl + w c/q 关闭当前/q
- ctrl + w s 上下分割当前打开文件
- ctrl + w v 左右打开
- vsp file 垂直文件
tab
- tabnew file 新建标签
- tabfind 查找并在新标签中打开文件
- tabs 查看当前文件
- tabclose 关闭当前文件
- tabony 仅保留当前打开标签
- tabn/p/first/last 切换标签
- tabm 将当前标签放到指定位置
visual 模式
- v 普通
- V 整行
- Ctrl+v 列
- gv 重选上一次选中