学习VIM掌握这九点就够了

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.****.net/sun8112133/article/details/81240244

  vim 是为 Linux 而生的第一个文件编辑器,相当于 Windows 下的记事本。它没有菜单,只能靠命令完成文本的编辑。

  当我们在 Linux系统 下输入 vivim 时,进入的都是 vim界面。vim 是 vi 的增强版,在早期的 linux系统 中使用的都是 vi,而现在大多数 linux系统 中都已改成 vim,如果你想安装图形化界面的 vim,还需要从软件包中下载:sudo apt-get install vim-gtk,安装好后直接使用 gvim 命令就可以打开图形化界面的 vim 了。


本文分为九个部分,新手掌握这九点就够了:

  一、三大模式

  二、插入命令

  三、保存退出

  四、光标定位

  五、剪切删除

  六、复制粘贴

  七、撤销恢复

  八、查找替换

  九、基本配置

学习VIM掌握这九点就够了


一、三大模式

  vim的工作模式有三个:命令模式、末行模式、插入模式。

学习VIM掌握这九点就够了

  命令模式 –> 末行模式::键 切换
  末行模式 –> 命令模式:Enter键 或 按两次 ESC键
  命令模式 –> 插入模式:A I Oa i o
  插入模式 –> 命令模式:ESC键


二、插入命令(命令模式 –> 插入模式化)

  • a 当前字符后插入
  • A 当前行尾插入
  • i 当前字符前插入
  • I 当前行首插入
  • o 当前行下插入新行
  • O 当前行上插入新行


三、保存退出(在末行模式下)

  • :w 保存
  • :w 新文件名 另存为
  • :wq 保存并退出
  • :q! 强制退出(不保存)
  • :q 退出


四、光标定位

1、在末行模式下定位

  • :set nu 显示行号
  • :set nonu 隐藏行号
  • :n 定位到第n行

2、在命令模式下定位

  • nG 定位到第n行,如:5G,定位到第5行
  • G 定位到最后一行
  • gg 定位到第一行
  • $ 定位到当前行尾
  • 0 定位到当前行首


五、剪切删除(在vi/vim中剪切和删除是一回事)

1、在末行模式下删除

  • dw 删除当前单词
  • x 删除当前字符
  • nx 删除当前后n个字符(包括当前字符),如:5x,从当前字符往后删除5个字符
  • dd 删除当前行
  • ndd 删除当前行下n行(包括当前行),如:2dd,从当前行向下删除2行
  • dG 删除当前字符到文末
  • D 删除当前行到行末(注:dd是将当前行全部删除,而D是删除当前行的内容,会保留当前行)

2、在命令模式下删除

  • :n1,n2d 删除从第n1到n2行,如::2,4d,删除第2行到第4行
  • :%d 删除全文


六、复制粘贴(在命令模式下)

  • yy 复制当前行
  • nyy 复制当前行下n行(包括当前行),如:3yy,复制当前行下3行(包括当前行)
  • p 粘贴到后(小写p)
  • P 粘贴到前(大写P)


七、撤销恢复(在命令模式下)

  • u 无限撤销
  • r 替换一个字符
  • R 从当前开始替换
  • . 重复上一次操作


八、查找替换

  • /string 在命令模式下,查找指定字符串,按 n 键查找下一个字符串
  • :%s/old/new/g 全文替换,old字符串 替换成 new字符串,其中s代表替换操作,g代表全局
  • :n1,n2s/old/new/g 在 第n1行 到 第n2行 内,old字符串 替换成 new字符串
  • :,$s/old/new/g 在当前行到最后一行内,old字符串 替换成 new字符串
  • :$s/old/new/g 在当前行到最后一行内,old字符串 替换成 new字符串


九、基本配置(部分常用配置)

  在家目录下编辑 .vimrc 配置文件(若不存在可创建一个),然后可以直接输入以下的相关配置信息(其中 " 内是注释部分):

set nu “显示行号”
set syntax=on “语法高亮”
set tabstop=2 “缩进宽度(Tag键的长度)”
set autoindent “自动缩进”

  注:如果你在编辑时,语法并没有高亮显示或者某些配置不起作用,那么你应该安装图形化界面的 vim,从软件包中下载:sudo apt-get install vim-gtk

  

  对于新手来说掌握以上九点就够了,最重要的是多加练习~