这篇文章上次修改于 1868 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
以下内容基于《构建高可用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 :启动语法高亮
没有评论