Linux编辑器之vim的使用
CSDN 2024-07-20 12:37:02 阅读 99
文章目录
一、vim简介二、vim的基本概念三、vim的基本操作四、vim正常模式命令集移动光标删除文字复制替换撤销上一次操作更改跳至指定的行vim末行模式命令集列出行号跳到文件中的某一行查找字符保存文件离开vim
五、进阶vim玩法打开文件批量注释代码执行shell命令指定注释窗口命令退出命令
六、简单vim配置配置文件的位置常用配置选项,用来测试
一、vim简介
Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线。 -->来自百度百科
二、vim的基本概念
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入<code>:help vim-modes
三、vim的基本操作
我们最一开始的输入<code>vim test.c 的时候就是命令模式
回车后进入了这个界面,这个界面就是命令模式
这里我的界面是这样的,大家可以看VimForCpp来配置一下自己vim,最后我会讲这个如何简单的自己配置一下~~
在这个状态下按下键盘会被 <code>vim 识别为命令比如我们此时按下i
,并不会输入一个字符,i
被当作了一个命令。就会进入插入模式这个时候insert会亮起,这个时候就可以随便输入文字了
那么我们退出的时候按下键盘上的<code>Esc,在键盘上按下:wq
【这里的操作一定是在英文模式下!】,然后回车这里的输入的模式叫做底行模式
上面这三种方式就可以用下面的图来表示:
四、vim正常模式命令集
首先用vim打开一个文件,这里我就打开一个以<code>.c为后缀的文件
vim test.c
按下i
,就进入到插入模式了,这个时候就可以写任何想写的东西了
这个时候我按下键盘上的<code>Esc就进入到了命令模式我们来开始学习命令模式:
移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母 「h」、「j」、「k」、「l」 ,分别控制光标左、下、上、右移一格
按shift+g:移动到文章的最后。也就是「G」按shift+4:移动到光标所在行的“行尾”。也就是「$」按shift+4:移动到光标所在行的“行首”。也就是「^」按「w」:光标跳到下个字的开头按「e」:光标跳到下个字的字尾按「b」:光标回到上个字的开头按「#l」:光标移到该行的第#个位置,如:5l,56l按[gg]:进入到文本开始按「ctrl」+「b」:屏幕往“后”移动一页按「ctrl」+「f」:屏幕往“前”移动一页按「ctrl」+「u」:屏幕往“后”移动半页按「ctrl」+「d」:屏幕往“前”移动半页
删除文字
「x」:每按一次,删除光标所在位置的一个字符「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符「dd」:删除光标所在行「#dd」:从光标所在行开始删除#行
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。「#yw」:复制#个字到缓冲区「yy」:复制光标所在行到缓冲区。「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
「r」:替换光标所在处的字符。「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。「ctrl + r」: 撤销的恢复
更改
「cw」:更改光标所在处的字到字尾处「c#w」:例如,「c3w」表示更改3个字
跳至指定的行
「ctrl」+「g」列出光标所在行的行号。「#G」:例如,「15G」,表示移动光标至文章的第15行行首
vim末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按**「:」**冒号即可进入末行模式。
列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
保存文件
「w」: 在冒号输入字母「w」就可以将文件保存起来
离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
上面的都是简单的操作,需要烙铁们必须掌握~
五、进阶vim玩法
打开文件
同时打开多个文件
vim file1 file2 file3 ...
在vim窗口中打开一个新文件
:open file
在新窗口中打开文件
:split file
切换到下一个文件
:bn
切换到上一个文件
:bp
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。
:args
打开远程文件,比如ftp或者share folder
:e ftp://192.168.10.76/abc.txt
:e \\qadrive\test\1.txt
批量注释代码
我写了一些代码,但是我想注释掉,但是一行一行的注释很麻烦,如何批量注释呢?
首先按下键盘上的<code>ctrl+v,进入到这个视图
然后再按键盘上的<code>j也就是光标往下走了,选中
继续按键盘上的<code>shit+i也就是I
,输入两个//
最后再按<code>Esc,就大功告成了~~
执行shell命令
直接在底行模式输入<code>:!+命令
指定注释
下面的
#
可以替换成需要注释的字符
注释第3-5行
3,5 s/^/#/g
解除3-5行的注释
3,5 s/^#//g
注释整个文档
1,$ s/^/#/g
注释整个文档,此法更快
:%s/^/#/g
这里教大家一个常用的命令其中 前面的%s是通配,然后跟上要匹配的字符,再跟上要替换的字符,g 表示全局范围内,s/printf/PRINTF/g 是替换的命令格式
:%s/printf/PRINTF/g
最后直接替换成功了~~
窗口命令
打开一个新窗口,光标停在顶层的窗口上
<code>:split或new
用新窗口打开文件
:split file或:new file
打开的窗口都是横向的,使用vsplit可以纵向打开窗口
split
移动到下一个窗口
Ctrl+ww
移动到下方的窗口
Ctrl+wj
移动到上方的窗口
Ctrl+wk
退出命令
保存并退出
:wq
保存并退出
ZZ
强制退出并忽略所有更改
:q!
放弃所有修改,并打开原来文件。
:e!
六、简单vim配置
配置文件的位置
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
例如,/root目录下,通常已经存在一个**.vimrc文件,如果不存在,则创建之。
切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
打开自己目录下的.vimrc**文件,执行 vim .vimrc
这里我就新建一个用户来操作~~
常用配置选项,用来测试
设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4
大家可以看VimForCpp来配置一下自己vim
最后本文简单的介绍了vim的概念以及如何操作,最后介绍了vim的配置
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。