Linux vim 梳理

概况

vim(参考资料)的三种模式:命令模式(Command mode),输入模式(Insert mode),底线命令模式(Last line mode)。html

命令模式

启动 vim,便进入了命令模式,此状态下敲击键盘动做会被 vim 识别为命令linux

经常使用命令:vim

i 切换到输入模式
 x 删除光标所在处的字符
 u 撤销命令
 : 切换到底线命令模式,以在最底一行输入命令
复制代码
输入模式

在命令模式下按下 i 就进入了输入模式,这个时候,键盘上除了 Esc 这个按键以外,其余的按键均可以视做为通常的输入按钮bash

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式,按 ESC 键可随时退出底线命令模式。spa

基本命令(已经省略了冒号):code

q 退出程序
w 保存文件
复制代码

按键说明

通常模式可用的光标移动、复制粘贴、搜索替换等
移动光标的方法
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
"nj" 或 "n↓" n 表示『数字』,例如 30, 则向下移动 30 行
[Ctrl] + [f] 屏幕『向下』移动一页
[Ctrl] + [b] 屏幕『向上』移动一页
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
n n 表示『数字』,如 6 光标会向右移动 6 个字符距离
0 移动到这一行的最前面字符处 (经常使用)
$ 移动到这一行的最后面字符处(经常使用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(经常使用)
nG n 为数字,移动到这个档案的第 n 行(可配合 :set nu)
gg 移动到这个档案的第一行 (经常使用)
n n 为数字。光标向下移动 n 行(经常使用)

搜索替换
/word 向光标之下寻找一个名称为 word 的字符串(经常使用)
?word 向光标之上寻找一个名称为 word 的字符串(经常使用)
n 重复前一个搜寻的动做
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(经常使用)
:1,$s/word1/word2/gc 在取代前显示提示字符给用户确认 (confirm) 是否须要取代!(经常使用)

删除、复制与贴上
x, X x 为向后删除一个字符, X 为向前删除一个字符
nx n 为数字,连续向后删除 n 个字符
dd 删除游标所在的那一整行(经常使用)
ndd n 为数字,删除光标所在的向下 n 行(经常使用)
d1G 删除光标所在到第一行的全部数据
dG 删除光标所在到最后一行的全部数据
d$ 删除游标所在处,到该行的最后一个字符
d0 删除游标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行(经常使用)
nyy n 为数字,复制光标所在的向下 n 行(经常使用)
y1G 复制游标所在行到第一行的全部数据
yG 复制游标所在行到最后一行的全部数据
y0 复制光标所在的那个字符到该行行首的全部数据
y$ 复制光标所在的那个字符到该行行尾的全部数据
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行
J 将光标所在行与下一行的数据结合成同一行
u 复原前一个动做,即回撤(经常使用)
. 重复前一个动做(经常使用)
通常模式切换到编辑模式的可用的按钮说明
进入输入或取代的编辑模式
i I i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』 (经常使用)
a A a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』(经常使用)
a A o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行(经常使用)
[Esc] 退出编辑模式,回到通常模式中(经常使用)
通常模式切换到指令行模式的可用的按钮说明
指令行的储存、离开等指令
:w 将编辑的数据写入硬盘档案中(经常使用)
:w! 若文件属性为『只读』时,强制写入该档案
:q 离开 vi (经常使用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (经常使用)
ZZ 若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开
:w [filename] 将编辑的数据储存成另外一个档案(相似另存新档)

vim 环境的变动
:set nu 显示行号
:set nonu 与 set nu 相反,为取消行号
相关文章
相关标签/搜索