5.5-5.7vim的使用和扩展

author author     2022-10-08     284

关键词:

5.5-5.7 vim的使用和扩展


vim的设置

“:wq”和“:x”的区别

  • “:wq”强制性写入文件并退出(存盘并退出 write and quite)。即使文件没有被修改也强制写入,并更新文件的修改时间。

  • “:x”写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。

  • 区别:

  这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq" 强制更新文件的修改时间,这样会让 make 编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。不过像是版本控制的软件一般首选还是比较文件内容,修改时间一般不加以理会。

vim中常用的几个快捷键

  • 注释所有的行:ctrl+v j/k+ shift +i

  • 查看光标当前的man手册 shift+k

  • d+f+字符

  • 选中面积 v+t+字符

  • 在vim里面删除光标后的所有字符 shift+d

  • 删除当前光标上的单词 d+i+w

  • 选中当前光标上的单词 v+i+w

vim中的一些命令

替换模式

在一般模式下按键盘上的r和R进入替换模式。如果按小r那么这时候就进入了替换模式,你下一个输入的字符会把你当前光标所在处的字符替换,然后自动退出替换模式。如果你按的是大R那么你下面输入的所有字符会把后面的字符依次替换,直到按退出替换模式。

可视模式

在一般模式下按键盘上的v和V进入可视模式。如果是按小v那么这时候就时入了视图模式,这时候你移动光标会把你光标所在处到光标结尾处的所有字符选中,这时候可以进行复制,删除等操作。如果是按大V同样也是进入了视图模式,这时候移动光标会把光标所在行到光标结尾的行的所有内容选中,也可以进行复制,删除等操作。

注: 使用在一般模式使用“ctrl+v”组合键可以进入块操作模式,在这个模式下和可视模式差不多,但是选择的内容不同。

删除从光标所处到行尾的字符

在一般模式下输入大写“D”或者输入“d$”

删除从光标所处到行首的字符

在一般模式下输入大写“d^”

删除从光标所在行到文件末尾行

在一般模式下输入大写“dG”

删除指定范围内所有行

eg:删除10到15行的所有内容

在一般模式下输入“:10,15d”回车

把正在编辑的文件另存为新文件

eg:把正在编辑的文件另存为到“/root/”下面并保存为1.txt

在一般模式下输入“:w /root/1.txt”

eg:把正在编辑的文件的第10行到第15行另存为1.txt并保存到root目录下在一般模式下输入“:10,15 w /root/1.txt”

把其它文件的内容导入到正在编辑的文件的光标所在处

eg:把“/root/1.txt”文件的内容,导入到下在编辑的文件的第10行下面

首先在一般模式下按“10G”把光标定位到第10行,然后按“o”小写,当前行的下面另起一行,并进入插入模式,最后按键盘上的返回到一般模式,再输入“:r/root/1.txt”回车

正在编辑文件时,不退出文件仍可以运行linux命令

eg:我在编辑一个文件,但这时候我想查看“/root/1.txt” 文件的内容,但是我不想退出我正在编辑的文件,那么我们可以这样在编辑模式下输入“:! cat/root/1.txt”

把命令的执行结果导入到正在编辑的文件的光标所在处

这题我们可以结合上面两题,在一般模式下输入“:r ! cat /root/1.txt”

查找替换的功能使用

eg:在10到15行的行首增加“#”

在一般模式下输入“:10,15s/^/#/”

eg:在10到15行的行首去掉“#”

在一般模式下输入“:10,15s/^#//”

eg:在10到15行的行首增加“//”

在一般模式下输入“:10,15s/^////”或者“:10,[email protected]^@//@”或者“:10,15s#^#//#”

注意: 在上面所有命令的最后面都可以加g或者c一起配合使用,g的意思是行中出现的所有指定字符都替换,但是如果加了g那么前面就不能出现位置定义字符,反之前面出现的位置定义字符,那么后面就不可以出现g。在后面加c可以跟用户交互,在查找到符合命令的字符提示用户是否替换,需要用户确认,否则不需要确认

把输入的指定字符替换为指定的字符

eg:在编辑一个文档的时候,我要频繁的输入“abcdefghijklmnopqr”这样的连续字符串,这时候我想只输入一个或者一串指定字符就可以替换为刚才的字符,比如我指定输入“aming”系统就会自动把“aming”替换成“abcdefghijklmnopqr”

在一般模式下输入“:ab aming abcdefghijklmnopqr”然后回车,再进入编辑模式,当你输入“aming”的时候就会发现自动替换成了“abcdefghijklmnopqr”

快捷键的定义

eg:我想在一般模式下按键盘上的ctrl+b快捷键,会自动在光标所在行的行首插入“#”号,然后自动退出到一般模式。

在一般模式下输入“:map ctrl+v ctrl+b I # ”然后回车,这时候在一般模式按键盘上的ctrl+b的时候就会在光标所在的行首插入“#”号了

注: 命令中ctrl+v和ctrl+b是键盘上的组合键,不是输入进去的字符,是需要按的组合键,其中第一个ctrl+v就照按,第二个ctrl+b是要定义的快捷键,根据自己需要的设置按。然后“I”的意思就是一般模式下的“I”进入插入模式并将光标移动到行首,然后接着输入“#”号,后面“”的意思是退出编辑模式。

同时编辑两个文件

eg:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口上下水平分隔,一起显示。

在一般模式下输入“:new /root/2.txt”

eg:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口左右垂直分隔,一起显示。

在一般模式下输入“:vsplit /root/2.txt”

注: 在一般模式下按“ctrl+w”组合键,再按左右,或者上下方向键,可以在不同窗口之间切换如果在一般模式下输入“:only”那么只保留当前正在编辑的窗口,其它全关闭。

在vim查找关键字时不区分大小写

在一般模式下输入“:set ic”

如果想取消就输入“:set noic”

把文件设置成只读文件

在一般模式下输入“:set readonly”

把文件恢复到打开时的状态

在一般模式下输入“:e!”

配置文件的使用

以上那么多操作,像设置忽略大小写,设定快捷键,设定自动替换,等一些操作,当电脑重启后就没有了。这时候我们可以把这些命令写入配置文件,这样电脑重启后还是可以使用,我们有两种方法:

  • 所有用户都统一

修改“/etc/vimrc”文件,在末尾加入需要设置的命令,就是我红色标注的部分

  • 只对当前用户

修改用户家目录下的“.vimrc”文件,注意有个点,这是隐藏文件,一般用户家下没有,需要自己手工创建


扩展内容:

vim 粘贴代码自动缩进导致全乱了:

用vim打开一个空白文档,然后把已经复制的代码给粘贴进来,发现它有自动缩进功能,最终导致粘贴的文本一行比一行靠右,看起来乱成一团。比较快的解决办法是,在粘贴文档前,在命令行模式下,输入set noai nosi

技术分享图片

然后按'i' 进入编辑模式,再粘贴已经复制的代码内容,这样就不会自动缩进了。

有时候,这样的方法不好用,可以尝试这种:

:set paste

客户端putty, xshell连接linux中vim的小键盘问题:

在putty上用vi的时候,开NumLock时按小键盘上的数字键并不能输入数字,而是出现一个字母然后换行(实际上是命令模式上对应上下左右的键)。解决方法:

选项Terminal->Features里,找到Disable application keypad mode,选上就可以了

在xmanager 4 中的xshell也有小键盘问题 解决方法为:

s

修改session 属性 -> 终端->VT模式->初始数字键盘模式

选择 设置为普通。

Linux用vim/vi给文件加密和解密:

一、        利用 vim/vi 加密:

优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;

缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除;

vi编辑器相信大家都很熟悉了吧,vi里有一个命令是给文件加密的,举个例子吧:

1)        首先在root主目录/root/下建立一个实验文件text.txt:

[[email protected] ~]#  vim/vi  text.txt

2)        进到编辑模式,输入完内容后按ESC,然后输入:X(注意是大写的X),回车;

3)        这时系统提示让你输入密码,2次,如下所示:

输入密码: *******

请再输入一次: *******

4)        保存后退出,现在这个文件已经加密了;

5)        用cat或more查看文件内容,显示为乱码;用 vim/vi 重新编辑这个文件,会提示输入密码,如果输入的密码不正确,同样会显示为乱码!

注意:文件加密后,千万别忘了密码!

二、        解密用vi加密的文件(前提是你知道加密的密码):

1)        用 vim/vi 打开文件如text.txt,要输入正确的密码,然后在编辑时,将密码设置为空,方法是输入下面的命令:

:set key=

然后直接回车,保存文件后,文件已经解密了。

2)        或者这样也行:

在正确打开文件后用 “:X” 指令,然后给一个空密码也可以。保存用“wq!”保存。

两种方法实际上效果是一样的。

vim 快速删除指定的一段字符:

因为不是一行,所以用dd不行,但用x去删除的话,又太慢。今天从网上发现一种特别快速删除的方法。

那就是使用da,如何使用,请看下面的例子。

比如,我的1.txt内容如下:

11111111111111111111111111

222222222222222222222222222222B3NzaC1yc2EAAAABIwAAAQEAv5oJvuIdaaVUsDOA2FbfnL0K2GbTc05Yg6TGM+8SNleI6bU5MhAy2uP5J4yCrMu43911hEJ2uh1UPycWX1O4xpEgUm8TGIs1HoQySnukv3g121uOLACRj37qqL9j4RRhrUxhunAW3alLSGIV0mxFD0ApyycFoLA/1I3hU7Yyx7tdripwz0FeHHhT3Qjfe9yC8Z6Ptq7cvBPXBBvc/G8pXVq3bnGMtj9Ifmbh7NnTvfHnEZGacf2MR4FSy0MMuNL0k3X5sBlsyP9/rXY9CPOh73eKUhZQoK3uWjwuDRp/dqrxgWDVeg0NZ+0t130pKu/LSREothWoVBu54rrtUUIdb3Sq0xsW4x9EhKGJJHPvBrbGbiDPTKBUaHdQEfmQQPAWeeX1hMC7lCunnfgTzf39Pv/2VpXz2l8NH2Jem0nrS48A6sf4eFz5VIakoRySMQu/6mY4s9aU3arbX+JvUE9s2/7D+JdqJlINtQqRU4V92LQq3BJaSMmKiwnPSytxDtARI3+8I2XXqFCJ5bBY7e3333333333333333333333

44444444444444444444444444444

我现在想删除22222222222和33333333333333333之间的字符只需要这样做:

1.  把1.txt的内容改成:

11111111111111111111111111

222222222222222222222222222222{B3NzaC1yc2EAAAABIwAAAQEAv5oJvuIdaaVUsDOA2FbfnL0K2GbTc05Yg6TGM+8SNleI6bU5MhAy2uP5J4yCrMu43911hEJ2uh1UPycWX1O4xpEgUm8TGIs1HoQySnukv3g121uOLACRj37qqL9j4RRhrUxhunAW3alLSGIV0mxFD0ApyycFoLA/1I3hU7Yyx7tdripwz0FeHHhT3Qjfe9yC8Z6Ptq7cvBPXBBvc/G8pXVq3bnGMtj9Ifmbh7NnTvfHnEZGacf2MR4FSy0MMuNL0k3X5sBlsyP9/rXY9CPOh73eKUhZQoK3uWjwuDRp/dqrxgWDVeg0NZ+0t130pKu/LSREothWoVBu54rrtUUIdb3Sq0xsW4x9EhKGJJHPvBrbGbiDPTKBUaHdQEfmQQPAWeeX1hMC7lCunnfgTzf39Pv/2VpXz2l8NH2Jem0nrS48A6sf4eFz5VIakoRySMQu/6mY4s9aU3arbX+JvUE9s2/7D+JdqJlINtQqRU4V92LQq3BJaSMmKiwnPSytxDtARI3+8I2XXqFCJ5bBY7e}3333333333333333333333

44444444444444444444444444444

注意,2222 和{ 之间没有换行。

2.  把光标移动到第一个{,也就是最后一个2后,然后输入da{ 即可把{}内的字符全部删除。

另外,除了可以使用{ 外,还可以使用 ", ', (  等成对的特殊符号。

其实vim还有一个比较常用的那就是v了,用v和d来删除也挺方便的:

打开一个文本后,直接按v,然后移动光标可以选中文本,当选中完你想要的文本后,直接按d,就删除了。


Vim 格式化使用 gg=G 和 xml

】Vim格式化使用gg=G和xml【英文标题】:Vimformattingusinggg=Gwithxml【发布时间】:2012-07-2405:14:21【问题描述】:我有一个格式正确的xml文件,并按照此处给出的命令作为答案:HowcanIautoformat/indentCcodeinvim?我正在尝试自动缩进我的文件... 查看详情

如何更改 vscode 的 VIM 扩展中的光标键

...ionforvscode【发布时间】:2021-01-0900:23:06【问题描述】:我使用ColemakDHmod布局,它围绕用于在正常模式下导航的默认键移动。我想知道是否有任何方法可以将hjkl光标键组合重新映射到mnei,或者更好的是neio。我实际上并没有使用vim... 查看详情

vim编辑器

...模式下,所有的输入被解释为文件的正文扩展模式:可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器 三种模式的转换(编辑模式和扩展模式不能直接转换)命令行模式→编辑模式:a、i、o编辑模式→... 查看详情

vim使用末行命令的扩展总结

末行命令主要是针对文件进行操作的:保存、退出、保存并退出、搜索、替换、另存为、新建、浏览当前目录下的文件列表。命令英文功能:e.edit会打开vim中内置浏览器,浏览当前目录下的文件列表。:n文件名new新建文件。:w文件... 查看详情

快速学会使用vim编辑器(代码片段)

...错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器也就是说Vim是从Vi发展而来的,但是却功能更加的完善以及强大,你将它理解一个可扩展的编辑器就可以了,因为它的... 查看详情

【转】ctags使用详解

...不同类但同名的函数所对应的tag名字都一样。于是在VIM中使用函数名来定位时就会出现很多选择,很麻烦。如果想用包括类名的函数全名进行定位,就得要求ctags记录全名。如下面的命令:可以要求ctags不要扫描某些目录或文件... 查看详情

vim简介和精简使用手册

...(文件)都用vim作为程序编辑的接口,所以如果不具备vim的使用能力,很多操作就无法进行。vim的基本使用对vim有过基本了解之后,最重要的是对vim进行操作。使用vim打开/创建文件使用​​vim[filename]​​打开一个文件,如果该文... 查看详情

vim编辑器

...器,默认有三种模式:命令模式,扩展模式,编辑模式,使用#vimfile打开一个文件时,默认进入命令模式,不同模式直接的切换如下1、命令模式切换到编辑模式:按a,i,o即可进入编辑模式2、编辑模式切换到命令模式:按ESC退回到... 查看详情

Vim 和正则表达式:Vim 使用啥样的正则表达式?

】Vim和正则表达式:Vim使用啥样的正则表达式?【英文标题】:VimandRegularExpression:whatkindofregexdoesVimuse?Vim和正则表达式:Vim使用什么样的正则表达式?【发布时间】:2011-04-2410:36:14【问题描述】:自从6个月以来,我一直在使用出... 查看详情

day04_vim编辑器及硬盘操作

...)分区l:列出(已经存在的)分区的类型m:列出fdisk中使用的所有命令n:添加一个新的分区p:列出分区表的内容q:退 查看详情

为何emacs和vim被称为两大神器

...Windows用户对软件的可扩展性没有概念,他们只能对他们使用的软件进行非常有限的定制。扩展软件的权利保留在软件开发者手中 查看详情

vim

...shell进入的文本编辑器,vim则是程序和脚本编辑器,熟练使用vim,对于提升Linux使用的效率和幸福感大有帮助。  vim的界面分了内容区和操作区两部分,内容区通过iaor及其大写字母、insert进入,操作区通过在非内容区域模式下/... 查看详情

配置vim(windows)

...级的开发工具,但是功能上绝对不失其他的几十G的大型IDE.使用版本和操作系统操作系统:Windows10家庭中文版python2.7.15(32位)VIM-ViIMproved8.0(MS-Windows32位控制版本)cmake3.10.3Windows8.1SDK基础配置扩展功能智能补全:Y 查看详情

vim打开和保存文件-vim使用技巧(代码片段)

使用Vim打开和保存文件是最常用的操作,介绍使用edit命令通过文件路径来打开文件,使用write命令保存文件,当文件路径不存在或用户权限不匹配时,使用write命令调用外部shell程序完成操作。1.edit命令打开文件Vim命令 :edit&nb... 查看详情

linuxdebian安装vim和vim使用教程(代码片段)

...新功能、错误修复和文档更新。Vim安装步骤步骤一、首先使用下面命令更新一下系统,确保您的系统是最新的,这一步很重要。sudoapt-getupdate步骤二、运行以下命令安 查看详情

Vim Command-T 插件错误:无法加载 C 扩展

...vimwithrubysupport(+ruby)所以现在有了+ruby标志,但是当我尝试使用该插件时仍然出现此错误:co 查看详情

linux中vim和vi编辑器的使用

...:打开一个文件后就默认进入一般命令模式,在这里可以使用粘贴,复制,删除等操作。按下(i, 查看详情

vim的使用

一、Vim的使用Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。而在我看来掌握Vim首先就要了解Vim的操作... 查看详情