Vim 从小白到入门

2019-09-06 19:32:01 +08:00
 wsgzao

前言

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) 正常模式主要用来浏览和修改文本内容的

一般的,打开 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 | 下一页 | | 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 版本

6513 次点击
所在节点    程序员
21 条回复
wsgzao
2019-09-07 22:41:17 +08:00
@justou #18 感谢长文回复,工作几年后其实这些都不重要,抓住核心吃透以后学其他的都很快,本质上还是锻炼自己思考问题和解决问题的能力,熟练掌握多加练习就够了
@ClaudeRay 我贴了 3 张图本意想告诉大家原始出处,其中第三张图才是入门的核心,而文章开头也强调了一个字"用",Vim 本身历史已经很久远,网上写得详细的很多比如陈皓哥 2011 年就写的《简明 VIM 练级攻略》,但我自己也很少做到深度使用习惯,我只是想做下记录希望可以帮助之后的人

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX