这篇文章上次修改于 2134 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
以下内容基于《构建高可用Linux服务器》作者 余洪春,对其错误修改和补充
| 命令模式 | 光标移动 |
|---|---|
| h 或向左方向键 | 光标向左移动一个字符 |
| j 或向下方向键 | 光标向下移动一个字符 |
| k 或向上方向键 | 光标向上移动一个字符 |
| l 或向右方向键 | 光标向右移动一个字符 |
| Ctrl + f | 屏幕向前翻一页 |
| Ctrl + b | 屏幕向后翻一页 |
| Ctrl + d | 屏幕向后翻半页 |
| Ctrl + u | 屏幕向前翻半页 |
| + | 光标移动到下一行的非空格符的开头位置 |
| - | 光标移动到上一行的非空格符的开头位置 |
| n<space> | 按下数字键后再按空格键,光标会向右移动这一行的 n 个字符 |
| 0 (HOME) | (数字 0 )移动到这一行的第一个字符处 |
| $ (END) | 移动到这一行的最后一个字符处 |
| H | 光标移动到当前屏幕最上方的那一行 |
| M | 光标移动到当前屏幕中央的那一行 |
| L | 光标移动到当前屏幕最下方的那一行 |
| G | 光标移动到文件的最后一行 |
| nG | 移动到当前文件的第 n 行 |
| n<Enter> | 光标向下移动 n 行 |
| 命令模式 | 查找与替换 |
|---|---|
| /word | 在光标之后查找一个名为word的字符串,按 Enter 键, 然后使用 n 键查找下一个(向下) |
| ?word | 在光标之前查找一个名为word的字符串,按 Enter 键, 然后使用 n 键查找下一个(向上) |
| :n1,n2s/word1/word2/g | 在第 n1 与 n2 行之间查找 word1 这个字符串,并将 该字符串替换为 word2,符号 / 是可以用 # ,@ ,% 等 符号替换,以区别要替换的字符串中有 / 的情况 |
| :1,$s/word1/word2/g | 在第一行与最后一行之间查找 word1 这个字符串,并将 该字符串替换为 word2 |
| :1,$s/word1/word2/gc | 在第一行与最后一行之间查找 word1 这个字符串,并将 该字符串替换为 word2,且在替换前显示提示符让用户 确认(conform) |
| 一般模式 | 删除,复制与粘贴 |
|---|---|
| x ,X | x 为向后删除一个字符,X 为向前删除一个字符 |
| nx ,nX | 向后删除 n 个字符,向前删除 n 个字符 |
| dd | 删除光标所在的那一整行 |
| D | 删除光标所在字符以及其后此行所有字符 |
| ndd | 删除光标所在行的向下 n 行 |
| dnG | 删除光标所在行到第 n 行的所有数据 |
| dG | 删除光标所在行到最后一行的所有数据 |
| yy ,YY | 复制光标所在行 |
| nyy | 复制光标所在行的向下 n 行 |
| ynG | 复制光标所在行到第 n 行的所有数据 |
| yG | 复制光标所在行到最后一行的所有数据 |
| p,P | p 为复制的数据粘贴在光标下一行,P 为粘贴在光标上一行 |
| J | 将光标所在行与下一行的数据结合成一行 |
| u | 恢复前一个动作(undo) |
| 编辑模式 | |
|---|---|
| i,I | 插入:在当前光标所在处插入开始输入字符,i 在光标所在字符之前, I 在光标所在行非空格符的开头位置 |
| a,A | 添加:由当前光标所在处追加开始输入字符,a 在光标所在字符之后, A 在光标所在行的末尾 |
| o,O | 插入新的一行:新一行行首开始输入字符,o 在光标所在行的下一行, O 在光标所在行的上一行 |
| r,R | 替换:r 替换光标所指的那一个字符;R 连续替换光标所指的文字,直到 按下 Esc 键为止 |
| Esc | 退出编辑模式,回到一般模式 |
| 命令行模式 | |
|---|---|
| :w | 将编辑的数据写入硬盘文件中 |
| :w! | 若文件属性为只读,强制写入该文件 |
| :q | 退出 vi(常用),快捷方式为 Shift + ZZ |
| :q! | 若曾修改过文件,又不想保存,使用!为强制退出不保存文件, 快捷方式为 Shift + ZQ |
| :wq | 保存后退出,若为 :wq! ,则表示强制保存后退出 |
| :w [filename] | 将编辑数据保存为另一个文件(类似另存新文档) |
| :r [filename] | 在编辑的数据中,读入另一个文件的数据。即将 filename 这个文件内容加到光标所在行的后面 |
| :set nu | 显示行号,设定之后,会在每一行的前面显示该行的行号 |
| :set nonu | 与 set nu 相反,为取消行号显示 |
| :set hlsearch | 开启搜索高亮,可编辑 /etc/vimrc 来取消所有高亮 |
| :set nohlsearch | 关闭搜索高亮,可编辑 /etc/vimrc 来取消所有高亮 |
| :n1,n2 w [filename] | 将第 n1 行到第 n2 行的内容保存为名为 filename 的文件 |
/etc/vimrc 或家目录的 .vimrc 配置文件
- set nobackup :不要备份文件,使用 backup 备份文件(原文件加后缀~)
- set noswapfile :不生成 .swap 文件
- set number :显示行号
- set cindent :设定 c 风格缩进,可使用 nocindent 取消设置
- set autoindent :设定自动缩进,每行缩进与上一行相等,可使用 noautoindent 取消设置
- set shiftwidth = 2 :设定缩进为两个空格
- set tabstop = 2 :设定制表符为两个空格
- set softtabstop = 2 :设定软制表符为两个空格
- set expandtab :缩进和(软)制表符使用空格替代,可用 noexpandtab 取消设置
- set ruler :显示光标所在行列号
- set mouse = v :如果我们用 set mouse = a 启动了所有模式,屏蔽了鼠标的右键功能,那么就可以用此语法让其在 Vim 可视化模式下也能使用鼠标右键复制功能
- syntax on :启动语法高亮
没有评论