Vim学习笔记
**Vim:
vim是一款功能强大的文本编辑器,也是早年Vi编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。vim是vi的升级版,可以有多级撤销、可视化等操作
*三种模式:
a.命令模式 —— 直接输入命令
b.编辑模式 —— 进入编辑模式编写文字
c.末行模式 —— 要加:的是末行模式命令
*进入/退出编辑模式(append):
i —— 在光标前插入文本
a —— 在光标后插入文本
o —— 在当前行下一行插入文本
O —— 在当前行上一行插入文本
esc —— 退出编辑模式(退出编辑模式才能输入命令)
*复制粘贴(进入编辑模式后)
Ctrl + Insert 复制(同linux命令)(类比Windows的Ctrl + c)
Shift + Insert 粘贴(同linux命令)(类比Windows的Ctrl + v)
*光标移动、文本选择
h、j、k、l(或空格) —— 左、下、上、右
gg —— 光标到第一行开头
V —— 选择单行,然后↑或↓键可选择多行
G(Shift + g) —— 光标到末行开头
ggVG —— 文本全选
g_(或$(即shift + 4)) —— 光标到当前行末
^(即shift + 6)(或0) —— 回到当前的行首
数字 + G —— 跳转到指定行(若不知道那是第几行,可用:set nu显示行号)
*复制与粘贴(在命令模式时)
y —— 复制所选文本(然后可在电脑其他地方Ctrl + v粘贴)
p —— 在该行下方粘贴所复制内容
数字n + p —— 在该行下方粘贴n行所复制的内容
yy —— 复制单行
数字n + y —— 复制当前行且复制往下数n-1行
*删除
dd —— 删除单行(即把当前行剪切了,可换到别的行直接p粘贴)
数字n + dd —— 删除当前行且删除往下数n-1行
dG —— 删除当前光标行及往下行的内容
ggdG —— 第一行及其往下行都删除(即从上往下的全部删除)
dgg —— 删除当前光标行及往上行的内容
Gdgg —— 最后一行及其往上行都删除(即从下往上的全部删除)
x —— 删除光标后的一个字符
X —— 删除光标前的一个字符
数字n + x/X —— 原理同上
*撤销与重做
vi和vim的多级撤销不管操作了多少步,都可以撤销到刚进来的状态,但是一旦退出再进来,就无法撤销了
u —— 撤销(类比Ctrl + z)
Ctrl + r —— 重做(类比Ctrl + y 或 Ctrl + Shift + z)
Tips:这里vi和vim有点区别
如果是vi,那么u是改变撤销方向,即按一次u然后再ctrl + r、ctrl + r……就可以多级撤销,如果想重做,那么再按一次u,再ctrl + r、ctrl + r就可以多级重做。
而如果是vim则不停按u就是多级撤销,不停按ctrl + r就是多级重做。
*查找与替换
查找:
/(要查找的字符或字符串) —— 从当前光标往后查找指定内容
n —— 查找下一个匹配的字符
N —— 查找上一个匹配的字符
?(要查找的字符或字符串) —— 从当前光标往前查找指定内容
n —— 查找上一个匹配的字符
N —— 查找下一个匹配的字符
替换:
光标移动到要更改的字符前(这里说的字符前其实就是光标白点与该字符重合)按r然后按需要替换的目标字符 —— 单次替换
R(即shift + r) —— 切换到替换模式,esc退出
*保存与退出
:w —— 保存
:q —— 退出
ZZ(或“:wq”或“:x”) —— 保存并退出(若文件的user权限是只读的即只有r没有w,那么退出要用:wq!(或:x!),其中!表示强制执行保存,但如果是group或other权限没有w,此法也不能奏效)
:q! —— 不保存并退出(其中!指强制执行,即若写了东西但是确认不保存退出,若没写或没修改任何东西,直接:q即可退出)
注意:若文件修改后直接关闭终端,或意外关闭电脑,vim会作一个自动保存(假设文件为A.txt),生成一个.A.txt.swp的隐藏文件,当下次打开A.txt时会提示是否恢复(每次打开都会有),如果不想该信息产生,要手动删除当前目录下的隐藏文件rm .A.txt.swp
*常用命令扩展
J —— 把光标所在行和下一行提上来合并为一行
>> —— 向右缩进(类比Tab键)(一次缩进8个字符,也可调,在Linux的某配置文件更改一下即可)
<< —— 向左缩进(类比shift + Tab键)
:%s/要替换的内容/替换后的内容/g —— 全局替换(其中g代表“全局”的意思)
:开始行数,结束行数s/要替换的内容/替换后的内容 —— 局部替换
. —— 重复上一次命令操作
ctrl + f —— 下一屏
ctrl + b —— 上一屏
:set nu —— 显示行号
:set nonu —— 取消显示行号
:syntax on —— 开启语法高亮
(如对.py文件的print()高亮,但是vi不支持此命令)
(syntax - (计算机语言的)句法,句法规则,语构,语法)
:syntax off —— 关闭语法高亮
更多命令可以搜索百度:vim键盘图片,即可出现可视化的命令键盘图片