前言
vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。而 Windows ❤️ Linux 的态度转变相信大家会经常使用到 Vim 文本编辑器,关于 Vim 的文章网上已经很多了本文只记录自己常用的作为备忘录,然而熟练掌握的方法始终只有一个字用。
Vim 键盘图
Vim 入门 5 步骤
完成以下练习恭喜你打开 Vim 的大门
- vim HelloWorld.txt
- 键入 i
- 编辑 输入任意信息,如 Hello World
- 键入 [ESC]
- 键入: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 pluginsVim 常用命令
以下为 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 到右边窗口
参考文章
Vim 中文文档
简明 VIM 练级攻略
第 4 章 Vim 编辑器与 Shell 命令脚本
《Linux 就该这么学》最新版下载地址: Word 版本 , PDF 版本
VIM CHEATSHEET (中文速查表)