VIM编辑器常用命令大全

前言:本博客记录本人在工作学习等日常中使用VIM时涉及的一些不熟命令及简略使用方法,本博客仅用于平时翻阅和供大家借鉴使用,如若侵权请联系!【博客会持续更新】

1、vim的三种模式:

1、命令模式:刚启动 vi/vim,便进入了命令模式。

        在此状态下,键盘键值动作会被vim识别为命令,而非输入字符;故此模式下只能浏览文件,无法修改文件。

2、输入模式:键盘输入 ’i’ 则进入输入模式,在该模式下可以编辑文件

        Insert:切换光标为输入/替换模式,光标将变成竖线/下划线。

        ESC,退出输入模式,切换到命令模式。

3、末行模式:在命令模式下按下 ‘:'(英文冒号)就进入了末行模式。

        末行模式可以输入单个或多个字符的命令,按ESC键可随时退出末行模式。

        在末行模式中,退出编辑器的基本的命令有:
        :q    退出程序
        :q!   强制退出不保存
        :w   保存文件
        :wq   保存退出
        :wq!      强行保存退出

注:vimtutor 是vim手册,直接在shell里输入vimtutor后可查看。

2、vim代码段整体左右移动

在.vimrc中添加set shiftwidth=4.(修改shift移动距离为4个字符的间距)

实现方法:

首先按 Esc,随后输入如下任一命令

:50,80, <        50~80行代码左移4个字符间距

:50,80, >        50~80行代码右移4个字符间距

最后按 Enter

3、vim分割窗口,调整窗口大小

:split 或  :sp                 上下分割窗口

:vsplit  或  :vs              左右分割窗口

:q                                 退出对应窗口

:edit  或  :e  +  新文件路径      在分割窗口下打开一个新文件

让光标在不同分屏切换,按Ctrl+w后,按下jkhl去选择要光标移动的方向。

Ctrl  W  +          窗口扩大

Ctrl  W  -           窗口缩小

Ctrl  W  =          把所有窗口调整为相同大小

4、取消搜索高亮

方法一:输入命令  -->  :noh

方法二:修改Vim的配置文件 .vimrc,在其中加入以下代码:set nohlsearch

n ->  向下匹配关键字

N -> 向上匹配关键字

5、vim打开文件出现^M问题

在使用VIM时,出现类似如下的^M情况,怎么回事呢?

那是因为windows、linux、os系统的换行符标准不同:

(1) DOS/Windows系统采用CRLF(回车+换行)表示下一行,即“\r\n”;

(2) Linux/UNIX系统采用LF表示下一行,即“\n”;

(3) MAC系统采用CR表示下一行,即“\r”;

解决办法:

在命令终端输入: sed -i 's/^M/\n/g' filename

利用vim打开文件,然后输入vim 命令:%s/^M//g,进行全文件查找替换。

注意:^M需要分别通过^(ctrl + v)和 M(ctrl + m)来获取,千万不能通过键盘上的^M输入。

6、vim复制黏贴

在命令模式下,执行复制黏贴命令:

复制命令:输入以下命令可复制当前光标所在字符及其之后的字符。

yl     -->  复制1个字母

y2l   -->  复制2个字母

ynl   -->  复制n个字母
yw   -->  复制1个单词
y2w    -->  复制2个单词

ynw    -->  复制n个单词
yy    -->  复制1行
y2y  -->  复制2行

yny  -->  复制n行

粘贴命令:

p (小写)    --->  在当前光标之后黏贴

p (小写)    --->  粘贴到下一行

P (大写)    --->  粘贴到上一行

7、vim剪切

在命令模式下,执行剪切命令:

输入以下命令剪切当前光标所在字符及其之后的字符。
cl       -->  剪切1个字母
c2l   -->  剪切2个字母

cnl   -->  剪切n个字母
cw   -->  剪切1个单词
c2w   -->  剪切2个单词

cnw   -->  剪切n个单词
cc   -->  剪切1整行
c2c   -->  剪切2整行

cnc   -->  剪切n整行

注意:剪切后会进入输入模式,需先按ESC退出,然后按p粘贴。

8、vim删除

在命令模式下,执行删除命令:

输入以下命令删除当前光标所在字符及其之后的字符。

dl 或者 x  -->  删除1个字母
d2l        -->  删除2个字母

dnl        -->  删除n个字母
dw        -->  删除1个单词
d2w      -->  删除2个单词

dnw      -->  删除n个单词
dd        -->  删除1行
d2d      -->  删除2行

dnd      -->  删除n行

ndd           -->  删除当前行及其后的 n-1 行

D              -->  删除光标之后的内容

 9、vim光标定位

gg       -->  光标移动到文件第一行行首
G      -->  光标移动到文件最后一行行首
:数字   -->  光标移动到指定行

0         -->   跳到行首

$         -->   跳到行尾

10、vim批量修改字符

:%s/p1/p2/g               -->   将文件中的所有p1替换为p2

:%s/p1/p2/gc             -->   替换时需要确认

r1,r2s/旧/新/g            -->   将r1-r2行的旧替换为新

/字符1/,/字符2/s/旧/新/g      -->   将字符1到字符2之间的旧替换为新

11、vim折叠命令

(1)VIM提供6种方法来选定折叠:

1    manual           手工定义折叠         
2    indent             更多的缩进表示更高级别的折叠         
3    expr               用表达式来定义折叠         
4    syntax            用语法高亮来定义折叠         
5    diff                  对没有更改的文本进行折叠         
6    marker           对文中的标志折叠

(2)在.vimrc文件的设置折叠方式

set foldmethod=xxx   或   set fdm=xxx

例子:

set fdm=syntax

(3)此处配置set fdm=syntax来说明折叠命令

za                        切换折叠点位置的状态

zc                        折叠

zC                       对所在范围内全部嵌套的折叠点进行折叠

zM                       对全部折叠点进行折叠

zo                        展开折叠

zO                       对所在范围内全部嵌套的折叠点展开

zR                       展开全部折叠

[z                        到当前打开的折叠的開始处

]z                        到当前打开的折叠的末尾处

zj                        向下移动,到达下一个折叠的開始处,关闭的折叠也被计进

zk                       向上移动,到前一个折叠的端,关闭的折叠也被计算

12、vim翻页

Ctrl  f           向前翻页

Ctrl  b          向后翻页

13、内容查找

/pattern     从光标开始处向文件尾搜索pattern

n               向下搜索

N               向上搜索

14、标签操作

:tabe               打开一个新的标签,q退出
:-tabnext         往左边移动打开标签页
:+tabnext         往右边移动打开标签页

15、光标移动

j           光标向上移动

k          光标向下移动

h          光标向左移动

l           光标向右移动

16、可视化块、可视化行

Ctrl + v      可视化块
shift + v     可视化行
在可视化行模式,输入:normal K+你所有行首需要添加的内容,回车就可在首行添加。


在可视化行模式,输入:normal A+你所有行尾需要添加的内容,回车就可在行尾添加。

shift + vG 选中文本所有的行。
Ctrl + vG 选中所有行的第一个字符,通过移动左键选择更多的字符。
Ctrl + vG 选中所有行的第一个字符,输入d删除所有行第一个字符,Ctrl + vG选择所有行的第一个字符,然后shift + I进入插入模式,输入你想改的字符,按esc就可以全改了第一个字符。或者,Ctrl + vG 选中所有行的第一个字符,按c,输入想改变的字符,按esc,也可以更改。

17、Ctags相关

Ctrl + ]       跳转到对应的定义

Ctrl + t       返回到上一次跳转的位置

:ts              列出项目中相同定义的跳转列表

g + Ctrl + ]  跳转到定义,并列出相同定义的跳转列表  

18、其它命令

.                 重复前次操作
u                撤销前次操作
Ctrl + r       恢复前次操作

o                在当前行下面新增加一行
w               下个单词首部
e               下个单词尾部
b               上个单词首部
ci{              光标移到{}内,输入命令即可删除{}内的内容

ci}              光标移到{}内,输入命令即可删除{}内的内容
:set numner       显示行号

:set nonumber   隐藏行号

.vimrc中:
noremap  a b a健改b健
map a b  a键改b键
let &t_ut=' '   防止导致配色异常

evinec          在linux中打开一个文件

参考博客:【Linux】vim三种模式的切换、常用命令总结_vim的三种运行模式是什么?如何切换_冰冷的希望的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值