vim命令的使用详解

目录

本文解读来自我对man vim 的解读

vim介绍

vim基本操作

打开文件

options详解

vim的五种模式(是我自己定义的五种)

正常模式必要命令详解

末行模式常用命令详解

可视模式常用命令详解


本文解读来自我对man vim 的解读

当然有很多解读不准确的地方,所有红色标注的地方都是最基本的,也是保证正确的。(不排除我的语言描述有问题)

vim介绍

vim是一个富文本编辑器,是vi编辑器的扩展版本,它可以用来编辑各种文本,尤其是能编辑程序

他和vi相比有很多的优点,可以多次撤销,可以同时打开多个 窗口进行编辑,语法高亮,命令行编辑,在线帮助,可视化选择,等等

vim基本操作

打开文件

vim filename
#example : 使用vim编辑器打开a.txt文件
vim a.txt

如果filename 为空,则会打开一个空的文件

vim [options] [filelist]     左右方括号代表集合,也就是指可以有多个option和多个list

options详解

options可以在文件名的前面,也可以在文件名的后面,对于不需要参数的option,可以放在一个破折号(-)后面

+[num]   参数就是一个整数,打开的文件光标会定位到第num行,如果不加这个参数,会定位到最后一行

对于命令   vim +5 a.txt 打开文件后,光标会默认定位到第5行

+/{patterns}   打开的文件会被定位到第一次出现patterns的位置(pattern的英文释义为模式,regex pattern 为正则表达式),关于patterns的具体内容我没有看过,但是正常情况下,你只要输如你想找的内容就好了

命令 vim +/诙谐的 a.txt 的运行结果如下:绿色位置为光标的初始位置,暗黄色位置为所有匹配到的文字

 

-b 二进制模式

-C 兼容模式,使用这个选项,会使vim更像vi编辑器

-d  diff模式,经常用来比较两个版本的代码异同,如果大家用过git,应该对此深有体会

命令 vim -d a.txt b.txt

运行结果如下

所有黑色背景为完全相同的地方,红色背景为完全不同的地方,蓝偏绿色的背景为与另一个文件相比增加的地方,其他的我也不太清楚

-h 显示vim的用法

-m 你可以在打开的窗口中更改,但你将无法对你更改后的文件进行保存,最后使用  :q退出,文件仍是你修改以前的结果

-M 你无法在你打开的窗口中更改,并且无法 对文件进行保存

-N 非兼容模式

-n 将不会使用交换文件,如果电脑断电或者发生崩溃,你的修改可能无法恢复,如果你需要在一个很短的时间对文件保存,你可以使用 :set uc=0,但不可以使用 set uc=200。set uc=0会使你的每次修改都将直接写进文件。

-o[N],打开n个窗口(窗口为栈的方式,及第二个在第一个的下面,第三个在第二的下面),如果没有写N的大小,会为每一个文件都打开一个窗口

对于命令   vim -o a.txt b.txt c.txt,运行结果如下

-O[N],和-o[n]类似,但是窗口为横向排列

对于命令vim -O a.txt b.txt c.txt,运行结果为

-V[N] 啰嗦模式,会显示vim的所有命令,就像linux电脑开机会显示各种命令,每一步执行什么,但是非啰嗦模式会直接打开文件,而电脑的非啰嗦模式就是你没看到那些每步的运行过程,只有一个进度条,进度条完了就是界面。可选参数N为啰嗦模式的值,默认为10,值越大啰嗦的就越厉害,如果值为10,只显示读取文件,读取vimrc,的过程,但是值为100,会显示每一步读取了什么文字,每行的内容是什么

-y 简单模式,就像Windows的记事本一样,鼠标点击哪儿光标就会指像哪。虽然很简单,但是作为一名计算机人,还是会各种命令更有成就感

vim的五种模式(是我自己定义的五种)

  1. 正常模式:这是最基本的模式,在以下任何模式中都可以通过点击Esc回到正常模式
  2. 插入模式:在该模式下可通过键盘输入字符串,在正常模式下,按i,a,o都可以进入插入模式,i为从当前光标所在字符的前一个字符开始插入,a为从当前光标的后一个字符开始插入,o为从当前光标的下一行开始插入
  3. 可视模式:可视模式可以对文本进行选中,然后方便复制,粘贴等操作,在正常模式下只能同时选中一个字符,所以如果你想删除多个字符或者多行字符是比较不方便的---当然在正常模式下确实有命令可以解决这个问题,但是相比可视模式有点复杂,在正常模式按v可进入可视模式,按V可进入可视行模式,安Crtl+v可进入可视块模式,大家 自己实践以下,很容易发现这三种可视模式的差别。另外在可视模式下,也可以用v,V,Crtl+v在三种可视模式下切换
  4. 替换模式:在正常模式下按R可进入替换模式,从当前光标处开始,键盘输入的字符会替换掉文本已经有的字符
  5. 末行模式:按:和/可进入末行模式,使用/进入的末行模式主要用来查找字符串,在下面进行详细解释

正常模式必要命令详解

h    #左移一个字符
l    #右移一个字符
j    #下移一行
k    #上移一行
dd    #删除一整行
x    #删除光标所在字符
u    #删除字符后撤销
yy    #复制当前行
#以上所有所有字符都可以在前面加数字,代表左移n个字符,又移n的字符,复制n行等...
p    #进行粘贴操作


0    #移动到行首
g0    #移动到当前屏幕的行首
H    #把光标移动到屏幕最顶端的一行
M    #把光标移动到屏幕中间一行
L    #把光标移动到屏幕最底端的一行
gg    #移动到文件的头部
G    #移动到文件的尾部

crtl + f    #下翻一屏
crtl + b    #上翻一屏
crtl + d    #下翻半屏
crtl + u    #上翻半屏
n%    #到文件n%的位置
zz    #将当前行移动到屏幕中央
zt    #将当前行移动到屏幕顶端
zb    #将当前行移动到屏幕底端

末行模式常用命令详解

:q    #退出当前文件且不保存,q为quit缩写
:q!    #强制退出当前文件
:w    #保存当前文件,w为write的缩写
:w!    #对于只读文件可强制保存更改
:wq    #保存并退出

:r filename    #在当前位置插入令一个文件
:r !date    #在当前位置插入当前日期
:r !command    #在当前位置插入其他shell命令的输出结果

:% s/目标字符/替换字符/g    #将目标字符替换为 替换字符 最后的g代表全局替换,%代表所有行
% s/目标字符/替换字符/gic    #将目标字符替换为 替换字符 ,%代表所有行,最后的g代表全局替换,i代表忽视大小写,c代表每个替换都需要用户确认才可以
:1,4 s/目标字符/替换字符/g    #将第一行到第四行的 目标字符替换为 替换字符

/string    :在后面的文本中查找字符串

可视模式常用命令详解

d    #删除选中的字符
y    #复制选中的字符
p    #粘贴选中的字符

建议所有命令读者都自行敲一遍,以增加印象

强调:有些命令我解释的可能不正确,也可能完全是错误的,希望读者可以指正

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值