Last active
January 3, 2016 07:59
-
-
Save jay16/8433388 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ctrl+a 跳到行首 | |
ctrl+e 跳到末尾 | |
ctrl+d 删除光标后1个字符 | |
ctrl+h 删除光标前1个字符 | |
ctrl+u 清除至行首 | |
ctrl+k 清除至行尾 | |
ctrl+f 光标后移1个字符 | |
ctrl+b 光标前移1个字符 | |
ctrl+p 显示上一条命令 | |
ctrl+n 显示下一条命令 | |
ctrl+l 清屏 | |
ctrl+j 回车 | |
ctrl+m 回车 | |
ctrl+w 向前删除一个单词 | |
ctrl+y 粘贴最后一个被删除的字 | |
ctrl+r 鼠标搜索已输入命令 | |
ctrl+t 交换光标前最后两个字符 | |
ctrl+v 输入ctrl字符 | |
alt+f 向右跳转一个字符 | |
alt+b 向左跳转一个字符 | |
Linux/vi 命令行快捷键 | |
Vim 常用命令 | |
1 切换插入模式: | |
命令模式下 | |
a (小写) 光标之后进行插入 | |
A (大写) 光标所在行尾进行插入 | |
i (小写) 光标前开始进行插入 | |
I (大写) 光标所在行首进行插入 | |
o (小写) 光标所在行后新插入一空行进行插入 | |
O (大写) 光标所在行前新插入一空行进行插入 | |
插入模式下按 ESC 键返回命令模式 | |
2 切换到编辑模式 | |
命令模式下按【:】进入编辑模式,键入命令回车后自动返回到命令模式或按 ESC 键返回到命令模式。 | |
3 保存文件 | |
编辑模式下 | |
:w (小写) 保存文件 | |
:wq (小写) 保存并退出 vim | |
:w 文件名 1 将文件另存为文件名 1 | |
:ZZ (大写) 保存文件并退出, 相当于:wq | |
:wq! (小写) 文件所有者强制保存只读文件, 如果不是文件所有者进行此操作, 不能成功 | |
:q! 退出不保存文件 | |
4 复制 (yank) | |
命令模式下 | |
yy 或 Y 复制光标所在整行 | |
y^ 复制到光标所在行行首, 不包括光标位置字符 | |
y$ 复制到光标所在行行尾, 包括光标位置字符 | |
yw 复制一个单词, 光标必须在单词首部 | |
yG 复制到文件尾 | |
y1G 复制到文件首 | |
nyy 复制光标所在行开始的 n 行 | |
5 粘贴 | |
命令模式下 | |
p (小写) 粘贴到光标后 | |
P (大写) 粘贴到光标前 | |
6 删除 | |
命令模式下 | |
x (小写) 删除光标前一个字符 | |
X (大写) 删除光标后一个字符 | |
dd (小写) 删除光标所在整行 | |
dw (小写) 删除光标所在处一个单词 | |
dG 删除光标所在整行到文件尾 | |
dgg 删除光标所在整行到文件首 | |
D (大写) 删除到行尾, 包含光标处的字符 | |
d$ 与 D 效果相同 | |
d0 删除到行首,不包含光标处的字符 | |
d^ 与 d0 效果相同 | |
:n1,n2d 编辑模式下,删除 n1-n2 行 | |
7 撤销 | |
命令模式下 | |
u (小写) 无限次保存前撤销 (大概 500 多次) | |
ctrl+r redo | |
8 字符替换 | |
命令模式下 | |
r (小写) 替换光标所在处一个字符 | |
R (大写) 开始替换, 直到按 ESC 键退出替换, 相当于按下键盘上到 insert 键 | |
cc (小写) 取代光标所在整行 | |
S (大写) 与 ss(小写) 效果相同 | |
C (大写) 取代到行尾, 包括光标处字符 | |
c0 (小写, 数字 0) 取代到行首, 不包括光标处字符 | |
c^ (小写) 与 c0(小写, 数字 0) 效果相同 | |
9 字符串查找和替换 | |
命令模式下 | |
/string 从光标处开始向下开始查找字符串 string | |
/ 查找模式下按 n(小写) 查找下一个, 按 N(大写) 查找上一个 | |
?string 从光标处开始向上开始查找字符从 string | |
? 查找模式下按 n(小写) 查找上一个, 按 N(大写) 查找下一个 | |
* 向下完整匹配光标下的单词 | |
# 向上完整匹配光标下的单词 | |
g* 向下部分匹配光标下的单词 | |
g# 向上部分匹配光标下到单词 | |
编辑模式下 | |
:set ic 查找时, 忽略大小写 | |
:set noic 取消查找时忽略大小写 | |
:f string (小写 f 与 string 有空格) 搜索一行中匹配到的 string | |
:%s/old/new/g 全文将 old 替换为 new, 不提示 | |
:%s/old/new/c 全文将 old 替换为 new, 提示是否替换 | |
:n1,n2s/old/new/g n1-n2 行中, 将 old 替换为 new, 不提示 | |
:n1,n2s/old/new/c n1-n2 行中, 将 old 替换为 new, 提示是否替换 | |
在替换文本 old 或 new 中有 / 字符时, 需要用 \ 进行转义 | |
10 显示行号 | |
编辑模式下 | |
:set nu(mber) 显示行号 | |
:set nonu 取消显示行号 | |
:set nu! 取消显示行号 | |
11 简单排版 | |
编辑模式下 | |
:ce(nter) 居中显示光标所在行 | |
:ri(ght) 靠右显示光标所在行 | |
:le(ft) 靠左显示光标所在行 | |
命令模式下 | |
J 将光标所在下一行合并到光标所在行 | |
>> 光标所在行增加缩进 (一个 tab) | |
<<光标所在行减少缩进 ( 一个 tab) | |
n>> 光标所在行开始的 n 行增加缩进 | |
n<< 光标所在行开始的 n 行减少缩进 | |
12 书签 | |
命令模式下 | |
mx 设定书签,x 是任意一个字母,通常小写 (a-z),x 为小写字母时, 局限在一个文件之间切换; 大写字母时, 可在文件之间切换. | |
`x (` 位于数字键 1 旁边) 跳转到书签 x | |
编辑模式下 | |
:marks 查看标签 | |
13 光标移动方式 | |
命令模式下 | |
H (大写,Head) 移动到屏幕顶第一个非空白字符 | |
M (大写,Mid) 移动到屏幕中间第一个非空白字符 | |
L (大写,Last) 移动到屏幕底部第一个非空白字符 | |
((左小括号) 移动到上一个句子首 | |
) (右小括号) 移动到下一个句子首 | |
{(左大括号) 移动到上一个段落首 | |
} (右大括号) 移动到下一个段落首 | |
% 光标跳转到匹配到括号处, 支持 {}() | |
[[ 光标跳转到代码块开头即 { 处, 要求 { 独占一行 | |
gD 光标跳转到局部变量定义处 | |
'' (两个单引号) 光标跳转到上次停靠处 | |
h (小写) 光标左移一个字符, 相当于左方向键 | |
l (小写) 光标右移一个字符, 相当于右方向键 | |
k (小写) 光标垂直上移一行, 相当于上方向键 | |
j (小写) 光标垂直下移一行, 相当于下方向键 | |
ctrl+f (forword) 向下整页翻页 | |
ctrl+b (backward) 向上整页翻页 | |
ctrl+u (up) 向上翻半页 | |
ctrl+d (down) 向下翻半页 | |
zz (小写) 让光标所在行居于屏幕中央 | |
zt (小写) 让光标所在行居于屏幕最顶部 | |
zb (小写) 让光标所在行居于屏幕底部 | |
编辑模式下 | |
:n 指定移动到第 n 行 | |
14 数字前缀与重复 | |
命令模式下 | |
将数字加在命令前, 标示该命令处理几次, 如 5dd 标示执行 5 次 dd(删除光标所在整行) 操作。 | |
. ( 英文句号)为命令重复命令,按下一次执行一次上一次执行过的命令。 | |
15 浏览目录 | |
编辑模式下 | |
:e 目录 列出指定目录下的文件和目录 | |
16 vim 技巧 | |
技巧 1 导入文件或 shell 命令执行结果 | |
编辑模式下 | |
:r 文件名 1 将文件 1 内容引入到本文件中 | |
:!shell 命令 在 vim 中执行 shell 命令, 执行完后按回车会到 vim 界面 | |
:r !shell 命令 (r 与! 之间有空格) 将 shell 命令执行的结果导入到本文件中 | |
技巧 2 自定义快捷键操作 | |
编辑模式下 | |
:map ^x 命令 (map 与 ^ 之间、x 与命令之间有空格, 此处到 ^ 并非键盘上的 ^, 而是按下 ctrl+v 出现到快捷键, 表示 ctrl 键, 后面到 x 为任意字母) 按下 ctrl+x 后会执行对应到命令 | |
例: | |
:map ^p I#<ESC> 当按下 ctrl+p 快捷组合键时, 在光标所在行行首添加一个 #号, 并回到命令模式 | |
技巧 3 连续行注释 | |
编辑模式下 | |
:n1,n2/^/#/g (# 号为注释符号, 在 shell 中注释符号为 #,C++ 中为 //) | |
:n1,n2/^/\/\//g C++ 源文件多行连续注释 | |
技巧 4 替换 | |
:ab string1 string2 在 vim 中输入 string1 按空格或回车后,string1 会自动替换为 string2 | |
:unab string1 取消 string1 的替换 | |
vim 配置文件 | |
~/.vimrc | |
可将编辑模式下的命令写在里面,每个命令单独一行,这样每次启动时,会自动执行里面的命令。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment