vim常用命令详解(vim使用教程)

目录本文解读来自我对manvim的解读vim介绍vim基本操作打开文件options详解vim的五种模式(是我自己定义的五种)正常模式必要命令详解末行模式常用命令详解可视模式常用命令详解本文解读来自我对manvim的解读当然有很多解读不准确的地方,所有红色标注的地方都是最基本的,也是保证正确的。(不排除我的语言描述有问题)vim介绍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 的运行结果如下:绿色位置为光标的初始位置,暗黄色位置为所有匹配到的文字

vim常用命令详解(vim使用教程)

 

-b 二进制模式

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

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

命令 vim -d a.txt b.txt

运行结果如下

vim常用命令详解(vim使用教程)

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

-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,运行结果如下

vim常用命令详解(vim使用教程)

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

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

vim常用命令详解(vim使用教程)

-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    #粘贴选中的字符

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128374.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ckeditor 在C#中使用

    ckeditor 在C#中使用

  • Android 开源项目和文章集合(更新:2022.03.21)

    1.再见SharedPreferences,你好MMKV!https://mp.weixin.qq.com/s/VBMDIE0QHXQAMuIjon-Fjg

  • node版本如何升级

    node版本如何升级YouareusingNodev8.4.0,butthisversionofvue-clirequiresNode>=8.9.PleaseupgradeyourNodeversion.然后再用node-v,发现在本地的node版本是v8.4.0,有点老了,要升级了。可是,node怎么升级呢?有点慌…

  • RSA加密算法的java实现

    RSA加密算法的java实现最近有一个外部合作项目要求在数据传输过程中使用RSA加密算法对数据进行加密,所以需要编写一个加解密的工具类,因为对方不是java语言,所以是各自实现的这个工具,本文主要讨论实现以及双方调试过程中的一些插曲,希望给大家不要再次踩坑。关于加解密的核心部分,网上有很多博主都有实现过,我也是参考了一些博主的方法自己实现了一个加解密的工具。packagecom.chen.test;importorg.

  • idea怎么取消多行注释_idea注释快捷键哪里修改

    idea怎么取消多行注释_idea注释快捷键哪里修改1、一次性添加多行注释的快捷键首先选中要注释区域,然后ctrl+/    这个是多行代码分行注释,每行一个注释符号ctrl+shift+/  这个是多行代码注释在一个块里,只在开头和结尾有注释符号2、取消多行注释快捷键怎样添加快捷键的,用相同方法取消,如ctrl+/ 添加注释,则ctrl+/取消注释ctrl+shift+/添加注释,则ctr

  • 旅行商问题(动态规划方法,超级详细的)

    旅行商问题(动态规划方法,超级详细的)一、题目一个售货员必须访问n个城市,恰好访问每个城市一次,并最终回到出发城市。 售货员从城市i到城市j的旅行费用是一个整数,旅行所需的全部费用是他旅行经过的的各边费用之和,而售货员希望使整个旅行费用最低。 (等价于求图的最短哈密尔顿回路问题)令G=(V,E)是一个带权重的有向图,顶点集V=(v0,v1,…,vn-1)。从图中任一顶点vi出发,经图中所有其他顶点一次且只有一次,最…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号