Vim 从小白到入门

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。而 Windows :heart: Linux 的态度转变相信大家会经常使用到 Vim 文本编辑器,关于 Vim 的文章网上已经很多了本文只记录自己常用的作为备忘录,然而熟练掌握的方法始终只有一个字

Vim 从小白到入门

更新历史

2019 年 09 月 06 日 – 初稿

阅读原文 – https://wsgzao.github.io/post/vim/

扩展阅读

Vim 英文文档 – http://vimdoc.sourceforge.net/htmldoc/

Vim 中文文档 – http://vimcdoc.sourceforge.net/doc/

Vim 键盘图

Vim 入门 5 步骤

完成以下练习恭喜你打开 Vim 的大门

  1. vim HelloWorld.txt
  2. 键入 i
  3. 编辑 输入任意信息,如 Hello World
  4. 键入 [ESC]
  5. 键入: wq 保存退出

你可以访问 Vim 在线练习模拟器 ,通过引导熟悉 Vim

Vim 基础概念

Vim 常用模式

  • 正常模式 (Normal Mode)
  • 插入模式 (Insert Mode)
  • 可视模式 (Visual Mode)
  • 命令模式 (Command Mode)

①. 正常模式 (Normal Mode)

正常模式主要用来浏览和修改文本内容的

一般的,打开 Vim 都是正常模式。在任何模式下,只要按下 Esc 键就可以返回正常模式。

②. 插入模式 (Insert Mode)

插入模式则用来向文本中添加内容的,我自己常用的是 i 和 o

i 在光标所在字符前开始输入文字并进入插入模式

o (字母 o) 在光标所在行的下面单独开一新行来输入文字并进入插入模式

③. 可视模式 (Visual Mode)

可视模式相当于高亮选取文本后的普通模式。

可视模式具有子模式,以行为单位进行选取的可视行模式,使用 “V” 键进入(也就是 Shift+v);和以块为单位进行选取的可视块模式,使用 “Ctrl+v” 键进入。

④. 命令模式 (Command Mode)

命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器

配置文件

通过运行 vim -V 可查看整个初始化过程

Vim 的全局配置一般在 /etc/vimrc ,对所有用户生效

用户个人的配置在 ~/.vimrc ,你可以把自己喜欢的配置比如 :set number 显示行号添加进去

vim ~/.vimrc

"Configuration file for vim
set modelines=0" CVE-2007-2438

"Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        "Use Vim defaults instead of 100% vi compatibility
set backspace=2" more powerful backspacing

"Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup

let skip_defaults_vim=1

set ai                  "auto indenting
set ruler" show the cursor position
set hlsearch            "highlight the last searched term
set history=1000" keep 1000 lines of history
syntax on               "syntax highlighting
filetype plugin on" use the file type plugins

Vim 常用命令

以下为 Vim 相对高频的命令,在日常使用中善用组合方法,记住核心的几种命令即可

正常模式 (Normal Mode)

命令 作用(解释)
h,j,k,l h 表示往左, j 表示往下, k 表示往右, l 表示往上
Ctrl + f 上一页
Ctrl + b 下一页
w , e , W , E 跳到单词的后面,小写包括标点
b , B 以单词为单位往前跳动光标,小写包含标点
o 开启新的一行
^ 一行的开始
$ 一行的结尾
gg 文档的第一行
[N]G 文档的第 N 行或者最后一行
dd 删除一行
dw 删除一个单词
x 删除后一个字符
X 删除前一个字符
D 删除一行最后一个字符
[N]yy 复制一行或者 N 行
yw 复制一个单词
p 粘贴
u 撤销上一步操作
ctrl + r 恢复上一步操作
. 重复最后一个命令
/pattern 向光标下搜索字符串,可以是正则表达式
?pattern 向光标上搜索字符串
n 向下搜索前一个搜素动作
N 向上搜索前一个搜索动作

插入模式 (Insert Mode)

命令 作用(解释)
i 插入到光标前面
I 插入到行的开始位置
a 插入到光标的后面
A 插入到行的最后位置
o , O 新开一行
Esc 关闭插入模式

视觉模式 (Visual Mode)

命令 作用(解释)
v 选中一个或多个字符
V 选中行
ctrl + v 选中列

命令模式 (Command Mode)

命令 作用(解释)
:set nu 显示行号
:set nonu 取消显示行号
:set paste 设置粘贴模式
:%s/old/new/g 全文替换
:w 保存
:wq , :x 保存并关闭
:q 关闭(已保存)
:q! 强制关闭
:split 水平方向分割出一个窗口
:vsplit 垂直方向分割出一个窗口
:close 关闭窗口
Ctrl + W 切换窗口, h 到左边窗口, j 到下方窗口, k 到上方窗口, l 到右边窗口