vim快捷键列表及一些基本操作。
| 快捷键 | 功能 | 
|---|---|
| 移动 | |
| h,j,k,l | 左,下,右,上 | 
| w | 向右移动一个单词(5w,移动5个) | 
| b | 向左移动一个单词(同上) | 
| ^ | 移动到本行第一个非空字符 | 
| $ | 移动到本行末尾 | 
| gg | 移到文本开头 | 
| G | 文本末尾 | 
| 插入 | |
| i | 光标前插入 | 
| a | 光标后插入 | 
| A | 本行末尾插入 | 
| o | 光标下方新起一行插入 | 
| O | 光标上方新起一行插入 | 
| 删除 | |
| dd | 删除该行(3dd,删除3行) | 
| D | 删除光标至行尾 | 
| dw | 删除一个单词 | 
| d0 | 删除至行首 | 
| dgg | 删除至文件开头 | 
| dG | 删除至文本末尾 | 
| x | 删除光标处字符 | 
| X | 删除光标左边单个字符 | 
| 修改 | |
| r | 替换字符(单个) | 
| R | 替换字符(进入替换模式) | 
| s | 修改一个字符(直接进入insert模式) | 
| C | 从光标处删除到行尾,并进入插入模式 | 
| c | 用法同d命令,但是会直接转换为插入模式 | 
| c$ | 替换文本到行尾(直接进入insert模式,功能和“D+i”一样,但是快) | 
| . | 重复前一次操作 | 
| u | 撤销前一次操作 | 
| Ctrl + r | 还原前一次撤销 | 
| yy | 复制一行 | 
| 2yy | 复制两行 | 
| p | 粘贴 | 
| 搜索和替换 | |
| /search_text | 搜索 | 
| n | 移动到后一个结果 | 
| N | 移动到前一个结果 | 
| :%s/original/replacement/g | 全文替换 | 
| :%s/original/replacement/gc | 全文替换(每次替换前询问) | 
| :%s/<original>/replacement/g | <和>分别为锚定词首和词尾,如果一个单词里面包含original,就不会被匹配到。 | 
| 保存和退出 | |
| ZZ | 同:wq | 
| ZQ | 同:q! | 
| :w new_filename | 用new_filename保存文件 | 
| :! | 执行外部命令(例::! cat ./another_file) | 
| 翻页 | |
| Ctrl + u | 向上翻半页 | 
| Ctrl + d | 向下翻半页 | 
| Ctrl + b | 向上翻一页 | 
| Ctrl + f | 向下翻一页 | 
| 分屏操作 | |
| vim -on file1 file2 | 水平分屏 | 
| vim -On file1 file2 | 垂直分屏 | 
| Ctrl + w l | 切换到右边分屏 | 
| Ctrl + w h | 左边 | 
| Ctrl + w j | 上边 | 
| Ctrl + w k | 下边 | 
| 可视化模式 | |
| v | 进入单个字符可视模式 | 
| V | 进入逐行可视模式 | 
文本对象及操作
vim的文本对象有w(word),s(sentence),p(paragraph)和各种引号括号。
范围有i(inner)和a(around)
下面是示例:
aw:一个word的around范围。
iw:一个word的inner范围,(不包括单词前面或后面的空格)
i[或者i]:括号内的内容。(其他括号一致)
ciw:删除一个word并插入,删除的内容存放在默认寄存器,用命令:reg ""可以查看,""代表默认无名寄存器。
daw:删除一个word及这个单词两边的空格,没有插入。
一般删除用a,修改用i.
在vim中用:h text-object查看文档。
列编辑
- 在normal模式下按ctrl+v进入列编辑模式
 - 通过hjkl选中编辑的区域
 - shift+i 或者 shift+a
 - 输入要插入的内容
 - ctrl+[或esc
 
块删除:
第一步:按下组合键“CTRL+v” 进入“可视块”模式,选取这一列操作多少行
第二步:按下d 即可删除被选中的整块
vim宏
普通模式下按qa,开始录制,会把键盘操作录入寄存器,按q结束。@a开始重复命令,10@a重复10次。
vim插件
安装vundle
这个是一个vim的插件管理器:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
修改.vimrc文件
下面是.vimrc文件vundle的配置:
set nocompatible              " be iMproved, required
filetype off                  " required
" 启用vundle来管理vim插件
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 安装插件写在这之后
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" 安装插件写在这之前
call vundle#end()            " required
filetype plugin on    " required
" 常用命令
" :PluginList       - 查看已经安装的插件
" :PluginInstall    - 安装插件
" :PluginUpdate     - 更新插件
" :PluginSearch     - 搜索插件,例如 :PluginSearch xml就能搜到xml相关的插件
" :PluginClean      - 删除插件,把安装插件对应行删除,然后执行这个命令即可
" h: vundle         - 获取帮助
" vundle的配置到此结束,下面是你自己的配置
我们把插件写上,然后在vim里面执行:
:PluginInstall
等待一下,安装所有插件,可以按:q退出界面。
git默认编辑器改为vim
nano不太会用= =
git config --global core.editor vim
或者打开.git/config文件,在core中添加 editor=vim