vim 常用命令

vi/vim 常用命令总结

vim是经典的文本编辑器,可以进行高效的程序开发。本文对常用命令进行整理。详细内容可以参考官方文档1.

如何进入vim

  1. bash中输入vi/vim即可进入
  2. sublime:
    在菜单栏中: Preferences -> Setting - User 即可打开配置文件进行编辑,将 ignored_packages 项的[]里面内容清空:“ignored_packages”: []2

再按 Esc 退出编辑模式,即进入了 Vim 模式。

1. vi/vim的工作模式切换

基本上 vi/vim 共分为五种模式34,分别是普通模式插入模式底线命令模式(Last line mode)。 这三种模式的作用分别是:

  • 普通模式(normal mode):常用基本命令,在此模式输入不会识别为输入字符,而是命令控制,如删除字符x,复制y等;
  • 插入模式(Insert mode):正常的文本输入模式。
  • 命令模式(command mode):可以通过单个或者多个字符进行命令控制,命令非常多。
  • 视图模式(visual mode): 命令模式下,v/ctrl+v进入选择模式。(v 字符,V 行)可通过移动光标(用 方向键 或 hjkl )选中多字符或者多行。
  • 替换模式(replace mode)替换模式,R进入该模式,输入字符替换当前光标后字符。

在这里插入图片描述

2. vim命令键盘图

命令键盘图

3. 常用命令模式命令

我认为vim最吸引我的就是简单有效,仅仅通过按键就可以快速的完成编辑工作。vim理想的使用模式就是用一次按键移动,用另一次按键执行5。vim的命令实在有点多,目前也没有理出好的头绪,就想把常用的内容整理记录一下。

3.1 光标移动

该部分参考博客

1. 移动键
h j k l 

说明: 该命令可在前面增加数字,表示重复多次.

  • 4l 向后移动四个字符
  • 4j 向下移动4行

为什么用 HJKL 键作为方向键?

当 Bill Joy 创建 Vi 文本编辑器时,他使用的机器机器是 ADM-3A 终端机,这机器就是把 HJKL 键作为方向键。自然而然,Bill Joy 也就用了相同的按键了。

2. 行内移动
  1. 按照单词前后移动
    w b e W B E 
    
  • w 表示按照单词向后移动
  • b 表示按照单词向前移动
  • e表示按照单词向后移动,但是定位到单词最后一个字符前
  • 相应的大写字母表示忽略标点符号的影响
  • 说明: 该命令可在前面增加数字,表示重复多次.
  1. 按照字符查找
    f F t T 
    
  • fa 表示向右查找字符a,定位到字符a
  • ta表示向右查找字符a,定位到字符a前一个字符前
  • 相应大写表示反向查找;
  • ;表示重复执行命令
  • 表示反向执行命令
  • 说明: 该命令可在前面增加数字,表示重复多次.
  1. 定位到行首行尾
    ^ 0 $ - + ( )| 
    
  • ^, 0都是定位到行首
  • $定位到行末,可以使用数字表示定位到后面多行的末尾
A I
  • A I是定位插入命令。
3. 行间移动
  1. 定位到某行:123
  2. gg G 文首 文末
  3. H M L定位到屏幕顶、中、底
  4. zz将光标所在行移动到屏幕中央;zt移动到屏幕顶部;zb移动到屏幕底部
  5. { }段首段尾
  6. ctrl f/b 上下翻页
  7. ctrl e/y 上下滚动
4. 标记定位
  1. ma表示标记该行为a;包括第几列的信息,都在标记a里。
  2. ‘a表示跳转到标记a处;会跳转到标记a的行首。单引号’
  3. `a表示跳转到标记a处;会跳转到标记a的行,包括第几列。更精准。按键在波浪号处。
  4. :marks 底线命令可以查看标记信息
  5. ctrl o/i 移动到前/后光标所在处
5. 查找定位
  1. # * 前后查找当前光标所在处的单词
  2. /hello 向后查找关键词hello,回车就到了后面第一个hello处。
  3. ?hello 向前查找关键词hello
  4. N/n向前向后查找

3.2 复制剪切粘贴

复制粘贴是常用的命令6。其粘贴板的机理如下:

vim 有 12 个粘贴板,分别是 0、1、2、…、9、a、“、+;用 :reg 命令可以查看各个粘贴板里的内容。其中:

  • " 号粘贴板为临时粘贴板,直接按 y 就复制到这个粘贴板中了,直接按 p 就粘贴这个粘贴板中的内容;
  • + 号粘贴板是系统粘贴板,用 "+y 将内容复制到该粘贴板后可以使用 ctrl+v 将其粘贴到其他文档(如 firefox、gedit)中,同理,要把在其他地方用 ctrl+c 或右键复制的内容复制到 vim 中,需要在正常模式下按 "+p;

要将 vim 的内容复制到某个粘贴板,需要先进入命令模式,选择要复制的内容(选择模式选择),然后按 "Ny(注意带引号)完成复制,其中 N 为粘贴板号,例如要把内容复制到粘贴板 a,选中内容后按 "ay 就可以了。如命令 "5p 会将 5 号粘贴板里的内容粘贴进来,也可以按 "+p 将系统全局粘贴板里的内容粘贴进来,或者直接按p将临时粘贴板中的内容粘贴进来。

常用复制剪切粘贴命令

注意:

vim粘贴复制刚开始用的时候有个让人头疼的就是寄存器,有时候傻傻分不清楚。使用命令行:reg可以查看寄存器的情况,然后使用"指定想要的内容对应的寄存器操作即可。用几次琢磨一下,再结合官方文档等的说明,就比较清楚了。

复制:

yy 			复制游标所在行整行 
2yy/y2y 	  复制 2 行
y^    复制至行首,或y0
y$    复制至行尾
yw    复制一个word
y2w    复制两个word 
yG    复制至文件尾
y1G    复制至文件首

剪切:

dd    剪切游标所在行整行 
d^    剪切至行首,或d0
d$    剪切至行尾 
dw    剪切一个word 
dG    剪切至文件尾  

粘贴:

p    粘贴至游标后(下) 
P    粘贴至游标前(上)
要使用 系统粘贴板 的内容,也可以直接在命令模式按 Shift + Inset 进行粘贴。

4. 常用底线命令行模式命令

4.1 设置行号

# 显示行号:
:set number 
:set nu 
# 隐藏行号:
:set nonumber 
:set nonu 

该命令对当前vim有用,如果想使vim默认显示行号则需要配置vimrc文件7

/etc/vimrc   是系统范围的初始化配置

~/.vimrc 个人的vim初始化配置

我们在配置文件输入set number 或者 set nu 就可以了

4.1 撤销

u/<C-r>撤销和回撤
在命令行模式下用 :undo 或 :u 命令可以撤销最近一次操作。

5. vim配置

5.1 vim光标样式设置

三种模式下光标样式区分8

"Mode Settings

let &t_SI.=“\e[5 q” “SI = INSERT mode
let &t_SR.=”\e[4 q" “SR = REPLACE mode
let &t_EI.=”\e[1 q" "EI = NORMAL mode (ELSE)

"Cursor settings:

" 1 -> blinking block
" 2 -> solid block
" 3 -> blinking underscore
" 4 -> solid underscore
" 5 -> blinking vertical bar
" 6 -> solid vertical bar

"let &t_SI = “&lt;Esc>]50;CursorShape=1\x7”
"let &t_SR = “&lt;Esc>]50;CursorShape=2\x7”
"let &t_EI = “&lt;Esc>]50;CursorShape=0\x7”

5.2 键修改

键是vim中最常用的按键之一,但是位置不太友好。一种方法是使用vim的重映射用jj等按键替换,但是这种和日常的操作还是不一致。因此我是用了第二种:利用PowerToys软件直接将<Caps>键和<Esc>键互换,这样就和日常的操作一致了,也的确挺好用的,就是刚开始的一段时间得改一下习惯了。

5.3 插件管理

插件管理有很多,我使用Vundle,具体使用可以参考博客9vim插件管理器:Vundle的介绍及安装(很全)

关键步骤:

  1. 安装vundle:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  1. .vimrc中配置
    此处暂略
  2. 安装插件
vim中运行命令
:PluginInstall

 
 
  1. 移除不需要的插件

编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行。
保存退出当前的vim
重新打开vim,输入命令BundleClean。

  1. 其他常用命令

更新插件BundleUpdate
列出所有插件BundleList
查找插件BundleSearch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值