欢迎光临散文网 会员登陆 & 注册

Vim学习笔记

2023-03-08 17:03 作者:Vh暖夏  | 我要投稿

**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键盘图片,即可出现可视化的命令键盘图片


Vim学习笔记的评论 (共 条)

分享到微博请遵守国家法律