前言

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。而 Windows ❤️ 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显示行号添加进去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 下一页
weWE 跳到单词的后面,小写包括标点
bB 以单词为单位往前跳动光标,小写包含标点
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 插入到行的最后位置
oO 新开一行
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 到右边窗口

参考文章

Vim中文文档

简明 VIM 练级攻略

第 4 章 Vim 编辑器与 Shell 命令脚本

《Linux 就该这么学》最新版下载地址: Word 版本PDF 版本

VIM CHEATSHEET (中文速查表)

Vim 从入门到精通

文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. Vim键盘图
  4. 4. Vim入门5步骤
  5. 5. Vim基础概念
    1. 5.1. Vim常用模式
    2. 5.2. 配置文件
  6. 6. Vim常用命令
    1. 6.1. 正常模式 (Normal Mode)
    2. 6.2. 插入模式 (Insert Mode)
    3. 6.3. 视觉模式 (Visual Mode)
    4. 6.4. 命令模式 (Command Mode)
  7. 7. 参考文章