Vim常用命令

Vim模式

普通模式(Normal Mode)


vim filename 即可启动vim, Vim启动后默认位于普通模式,此时不能向文本中输入内容,相当于只读文件,可以通过一些特殊的按键组合执行对应的操作,下面是常用的命令。

按键组合操作
ctrl + f向后移动一页
ctrl + b向后移动一页
gg移动到文件开头
G移动到文件结尾
/word向游标下方查找 word 这个字符串
?word向游标上方查找 word 这个字符串
n重复上一个/word或者?word例如上一个命令是/word,按n相当于继续执行/word
N反向重复查找,例如上一个命令是/word,按N则相当于继续执行?word
dd剪切游标所在的一整行
dG删除游标所在一行到文件末尾的所有内容
u撤销
ctrl + r重做
p将缓冲区的数据粘贴至光标所在行的下一行
P将缓冲区的数据粘贴至光标所在行的上一行

输入模式(Insert Mode)


在普通模式中输入以下按键即可进入插入模式,该模式下可以通过键盘输入内容,按ESC键即退出回普通模式。

按键组合操作
i在游标所在的字符之前插入需要录入的文本
I(大写i)在游标所在行的行首插入需要录入的文本
a在游标所在的字符之后插入需要录入的文本
A在游标所在行的行尾插入需要录入的文本
o在游标所在行的下一行行首插入需要录入的文本
O在游标所在行的上一行行首插入需要录入的文本
s删除游标所在处的字符然后插入需要录入的文本
S删除游标所在行,在当前行的行首开始插入需要录入的文本
ctrl + n代码补全

命令模式(Command Mode)


普通模式或者输入模式中按下:(英文冒号)或者/(斜杠)即可进入命令模式也叫底线命令模式(因为输入命令都在文件底部),在命令模式中可以输入并执行一些vim或插件提供的指令。下面是一些常用的命令。

命令功能
:set nu显示行号
:set nonu隐藏行号
:n跳转到第n行
/{目标字符串}查找目标字符串
:set hls高亮显示查找文本
:w保存
:w!强制保存
:q退出
:q!强制退出
:wq保存退出
:wq!强制保存退出
:e重新加载文件
:e!强制重新加载文件
:1, 100d删除1-100行
:%s/word1/word2/gc从第1行寻找至最后一行,将word1替换为word2,替换前提示是否替换
:n1, n2s/word1/word2/gc从第n1行寻找至n2行,将word1替换为word2
:redo重做
:helpvim参考文档

可视模式(Visual Mode)


普通模式下按v/V即可进入可视行(Visual Line)模式;按ctrl + v可以进入可视块(Visual Block)模式。可视模式可以选择任意长度的数据,进行复制、粘贴、替换等操作。下面是一些常用的命令。

命令功能
y复制选中内容
d剪切选中内容
shift + i需要先进入可视块模式,可视块插入模式,可以批量添加/删除注释
=配合/etc/vimrc中的设置进行代码自动缩进

Vim环境设置文件/etc/vimrc


vimrc文件是vim的环境设置文件,vim启动时会加载vimrc中的配置,我们可以修改vimrc文件达到我们想要的配置。下面是一个示例。

set backspace=indent,eol,start  " allow backspacing over autoindent, line breaks, start of the insert
set ruler       " display current row and column position                          
set viminfo='20,\"50    " read/write a .viminfo file, don't store more than 50 lines of registers
set history=50  " store 50 lines of command line history                           
set hls                                " 高亮显示查找结果                          
set nu                                 " 显示行号                                  
set ts=4 "                             " 按一个tab等于4个空格                      
set expandtab                          " 把制表符转换为多个空格                    
set autoindent                         " 开启自动缩进                              
set softtabstop=4                      " 把连续空格视作一个tab,一次删除一个tab的空格量
set encoding=utf-8                     " vim内部编码                               
set fileencodings=usc-bom,utf-8,gb18030,gbk,gb2312,cp936     "设置vim能识别的编码
set shiftwidth=4                       " 自动缩进的空格长度                        
set cc=80                              " 每行80个字符(非强制                      
set cursorline                         "突出显示当前行                             
set mouse=a                            "开启鼠标                                   
set showmatch                          "高亮显示匹配的括号                         
" 突出显示行尾的空格                                                               
highlight WhitespaceEOL ctermbg=red guibg=red                                      
match WhitespaceEOL /\s\+$/                                                        
"语法高亮                                                                                                       
syntax enable                                                                      
syntax on

Vim与系统剪切板的交互


很多情况下我们并不仅仅在vim上操作,有可能需要把vim文件外的内容复制到vim文件中或者把vim文件里的内容拷贝到vim文件外,这时上面的一些命令就不太好用啦,下面是多种复制粘贴方式的一种,仅供参考。

/* 在系统剪切板中 */
ctrl + c; // 复制
ctrl + v; // 粘贴
/* 在vim中 */
"*y; // 复制,进入可视模式后选中内容接着敲下这三个键,前两个键需配合着shift使用
"+y; // 和楼上相同效果
shift + insert; // 粘贴
shift + ctrl + v; // 和楼上相同效果

随时会补充…

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值