前言

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 显示行号添加进去

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 nobackuplet skip_defaults_vim=1set 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,lh 表示往左,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 (中文速查表)

行号 设置vim_Vim从小白到入门相关推荐

  1. C#程序代码行号设置

    C#程序代码行号设置 转载于:https://www.cnblogs.com/swtool/p/3840512.html

  2. 行号 设置vim_在VSCode里面配置Vim正确姿势(细节解析)

    一.导论 对于不用vim的人来说,vim简直是个噩梦,复杂的指令.丑陋的界面.令人头痛的配置文件,任何一项都足以劝退一大波人,但是对于已经习惯了使用vim的人来说,vim简直就是马良神笔,似乎vim除 ...

  3. 掌握论文中英文断字处理及段落行号设置

    掌握论文中英文断字处理及段落行号设置 1.原Word文档 2.英文断字 3.取消单独段落断行 4.段落行号设置 1.原Word文档 2.英文断字 3.取消单独段落断行 4.段落行号设置

  4. Visual Studio软件中的行号设置

    Vs软件中的行号设置 一.    在使用VS软件中,我们通常写代码时,左边通常会有代码数字行显示,在VS中,这种设置的名称为:"行号",如果行号消失我们又该如何设置回来呢? 1.  ...

  5. Linux显示行号设置

    Linux显示行号设置 第一步,打开vim vi ~/.vimrc 第二步,在该文件中加入一行,命令如下: set nu # 显示行号 set nonu # 不显示行号

  6. IAR 显示行号设置

    打开任意一个IAR工程,如下图所示,代码显示区在默认情况下没有显示行号. 点击菜单栏的"Tools->Options". 进入tool选项设置界面后,找到"Edit ...

  7. IDLE行号设置及linenumbers修改

    1.最重要的想法来自大佬,但是这位大佬把一个图片弄错了,应该是在config-extensions.def修改设定,但是他的图弄成了config-keys.def. 2.LineNumbers.py文 ...

  8. vi 永久显示行号设置

    第一种: 按esc,然后输入命令  :set nu 第二种: 永久显示的方法是修改配置文件: 输入命令:vim   ~/.vimrc 打开后添加set  nu,保存退出,再次进入vim编辑器,就会有显 ...

  9. Python+PyCharm的一些基本设置:安装使用、注册码、显示行号、字体大小和快捷键等常用设置...

    一 下载与安装 软件下载,软件文档下载:http://www.jetbrains.com/pycharm/download/ 如下图: 官方网站下载:http://www.oschina.net/p/ ...

最新文章

  1. Dynamics CRM 开启EmailRouter日志记录
  2. CentOS7安装MySQL(完整版)
  3. 使用 unsafe_使用Unsafe真的是关于速度或功能吗?
  4. 力扣两数之和 II - 输入有序数组
  5. js如何监听元素事件是否被移除_javascript:什么是js事件?(上)
  6. 基于马尔萨斯的人口模型的一个Logistic模型(MATLAB)
  7. Lottie动画的优劣及原理
  8. 计算机的负面影响英语作文,沉迷于电脑游戏的危害
  9. date设置时间提示:Local time zone must be set--see zic manual page 2018
  10. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新2)
  11. el-select被嵌套太多层导致选不中
  12. 计算机视觉中的数学方法——1平面射影几何——1射影平面+2二次曲线
  13. 正运动学及逆运动学求解方法
  14. 三星typec转接耳机没反应_typec转3.5mm转接线,你买对了吗?
  15. rank over pation
  16. 参加2022年全国设备监测诊断与维护学术会议感想
  17. 还是学生的时候 想着存些对我有用 的url
  18. arduino灯带随音乐_Arduino—超简单音乐制作
  19. 优惠券系统-第三章-活动中心
  20. oracle补丁冲突,oracle 打补丁常见问题

热门文章

  1. (1 24) 3 java代码_算24点 java代码
  2. python 如何在linux进行调试
  3. 十四、Linux进程编程
  4. QTcreator 多线程(生产者消费者)
  5. 第12周学习进度总结
  6. Universal Windows Platform(UWP)应用的窗口特性
  7. echarts图表第一个案例
  8. PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
  9. JavaXml教程(二)使用DOM方式解析XML文件
  10. Windows8 正式版最简单的去除桌面水印方法