Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

1        图解vim各命令操作

2        命令模式(command mode)

控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作(不使用[Del]键和[Backspace]键)以及进入插入模式,或者回到底行模式。

1) 移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母“h”、“j”、“k”、“l”分别控制光标左、下、上、右移一格。

按“ctrl+b”:屏幕往后移动一页。

按“ctrl+f”:屏幕往前移动一页。

按“ctrl+u”:屏幕往后移动半页。

按“ctrl+d”:屏幕往前移动半页。

按数字“0”:移动到文本的开头。

按“1G”或者“gg”:移动到文件首。

按“G”:移动到文件的最后。

按“$”:移动到光标所在行的行尾。

按“^”:移动到光标所在行的行首。

按“w”:光标跳到下个字的开头。

按“e”:光标跳到下个字的字尾。

按“b”:光标回到上个字的开头。

按“nl”或者“n->”:光标移动该行的第n个位置,例如:“5l”表示移动到该行的第5个字符。

2) 删除文字

“x”:每按一次,删除光标所在位置的后面一个字符。

“nx”:例如:“6x”表示删除光标所在位置后面6个字符。

“X”:大写的X,每按一次,删除光标所在位置的前面一个字符。

“xX”:例如:“20X”表示删除光标所在位置前面20个字符。

“dd”:删除光标所在行。

“ndd”:从光标所在行开始删除n行。例如:“4dd”表示删除从光标所在行开始的4行字符。

3) 复制

“yw”:将光标所在之处到字尾的字符复制到缓冲区中。

“nyw”:复制n个字到缓冲区。

“yy”:复制光标所在行到缓冲区。

“nyy”:例如:“6yy”表示复制从光标所在行开始6行字符。

“p”:将缓冲区内的字符写到光标所在位置。

4) 替换

“r”:替换光标所在处的字符。

“R”:替换光标所到处的字符,直到按下“ESC”键为止。

5) 撤销上一次操作

“u”:如果误执行一个命令,可以马上按下“u”,回到上一个操作。按多次“u”可以执行多次撤销操作。

6) 更改

“cw”:更改光标所在处的字到字尾处。

“cnw”:例如:“c3w”表示更改3个字。

7) 跳至指定的行

“ctrl+g”:列出光标所在行的行号。

“nG”:例如:“15G”,表示移动光标到该文件的第15行行首。

8) 存盘退出

“ZZ”:存盘退出

9) 不存盘退出

“ZQ”:不存盘退出

3        插入模式(Insert mode)

在一般模式中可以进行删除、复制、粘贴等等的操作,但是却无法编辑文件内容!要按下『i, I, o, O, a,A, r, R』等任何一个字母之后才会进入编辑模式。通常在 Linux 中,按下这些按键时,在画面癿左下方会出现『 INSERT戒 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式。

1) 进入插入模式

按“i”:从光标当前位置开始输入文件。

按“a”:从目前光标所在位置的下一个位置开始输入文字。

按“o”:插入新的一行,从行首开始输入文字。

按“I”:在光标所在行的行首插入。

按“A”:在光标所在行的行末插入。

按“O”:在光标所在的行的下面插入一行。

按“s”:删除光标后的一个字符,然后进入插入模式。

按“S”:删除光标所在的行,然后进入插入模式。

2) 从插入模式切换为命令行模式

按“ESC”键盘。

4        底行模式(last line mode)

在使用末行模式之前,请记住先按“ESC”键确定已经处于命令行模式后,再按冒号“:”即可进入末行模式。

1)       列出行号

“set nu”:输入“set nu”后,会在文件中的每一行前面列出行号。

2)       取消列出行号

“set nonu”:输入“set nonu”后,会取消在文件中的每一行前面列出行号。

3)       搜索时忽略大小写

“set ic”:输入“set ic”后,会在搜索时忽略大小写。

4)       取消搜索时忽略大小写

“set noic”:输入“set noic”后,会取消在搜索时忽略大小写。

5)       跳到文件中的某一行

“n”:“n”表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车就会跳到文本的第15行。

6)       查找字符

“/关键字”:先按“/”,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按“n”,往后查找一个关键字。

“? 关键字”:先按“?”键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按“?”,往后查找一个关键字。

7)       运行shell命令

“!cmd”:运行shell命令cmd。

8)       替换字符

“s /SPARCH/REPLACE/g”:把当前光标所处的行中的SEARCH单词替换成REPLACE,并把所有SEARCH高亮显示。

“%s /SPARCH/REPLACE”:把文档中所有SEARCH替换成REPLACE。

“n1,n2 s /SPARCH/REPLACE/g”:n1、n2表示数字,表示从n1行到n2行,把SEARCH替换成REPLACE。

9)       保存文件

“w”:在冒号输入字母“w”就可以将文件保存起来。

10)   离开vi

“q”:按“q”即退出vi,如果无法离开vi,可以在“q”后面一个“!”强制符离开vi。

“qw”:一般建议离开时,搭配“w”一起使用,这样在退出的时候还可以保存文件。

附录:

Vim 配置详解

转载于:https://www.cnblogs.com/bbsno1/p/3271462.html

linux学习笔记之--vim 程序编辑器相关推荐

  1. linux学习笔记:vim编辑器基本操作(附vim 键盘图)

    vim 有三种模式: 命令模式(Command mode) 插入模式(Insert mode) 底线命令模式(Last line mode) 默认打开vim,即进入命令模式. 接下来,英文输入状态下, ...

  2. Linux学习笔记8——VIM编辑器的使用

    在ubuntu中,敲入命令行:sudo apt-get install vim,然后输入系统密码,确认Y,即可下载vim 按下vim,在后面跟上文件的路径,即可进入文件到编辑模式,如果不存在该文件,将 ...

  3. linux学习笔记:vim编辑器的各种用法操作命令

    vi/vim 按键说明: 第一部份:一般模式可用的光标移动.复制粘贴.搜索替换等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 ...

  4. Linux学习笔记三--vim

    一般模式 按下i进入编辑模式,此时左下角出现--INSERT--,键盘上除了[Esc]外,其他按键就作为一般的输入,进行任何的编辑.一般模式下":q!"不保存离开,":w ...

  5. Linux学习笔记:rpm程序包管理

    以CentOS为例,rpm程序包管理器的相关内容如下: CentOS的程序包管理器:     程序包的命名规则:         源代码包:             software_name-VER ...

  6. Linux学习笔记之Vim总结

    Vim简介 Vim是一个功能强大的全屏幕文本编译器,是Linux/UNIX上最常用的文本编译器, 它的作用是建立.编辑.显示文本文件 Vim没有菜单,只有命令 Vim常用操作 :是命令模式下输入 Vi ...

  7. Linux学习笔记之vim的写代码美化优化

    语法补全用的是YouCompleteMe - Vim的终极自动完成插件YouCompleteMe(YCM)是Vim的快速,类型代码完成引擎.它结合了几个来源的输出并对其进行了优先排序: 基于标识符的引 ...

  8. Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))

    Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...

  9. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

最新文章

  1. 春节特惠活动┃给孩子讲100个科学道理,不如带他做这些趣味实验!
  2. python中的分号
  3. *如何循序渐进向DotNet架构师发展(转)
  4. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
  5. nodejs调用函数和模块
  6. oracle ogg 12c mysql_Oracle GoldenGate 下载
  7. new delete 来申请动态二维数组空间
  8. 导出数据库设计文档的几种方案
  9. 上月和本月对比叫什么_环比增长率怎么算月度(本周比上周是同比还是环比)...
  10. Android 百度地图--定位、周边搜索
  11. Unity Shader-Command Buffer的使用(景深与描边效果重置版)
  12. 思考与总结【3】:专注于一件事
  13. 穷人最缺少的不是金钱,而是野心
  14. XMind导入Markdown(利用Typora导出opml)
  15. 数字旅游解决方案_什么是数字标牌?
  16. Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别
  17. 878. 第 N 个神奇数字(二分查找+数学)| 1819. 序列中不同最大公约数的数目(枚举+数学)
  18. GRUB2引导ISO
  19. 各国语言文化代码和国家地区简写代码表
  20. VB版 植物大战僵尸修改器

热门文章

  1. 网站假设php,PHP个人网站架设连环讲(一)
  2. JZOJ 4919. 【NOIP2017提高组模拟12.10】神炎皇
  3. vb计算机水平考试笔试,2014计算机考试二级VB笔试答题技巧汇总
  4. texmaker中图片过大怎么办_【社工面试】社区居民楼起火,你怎么办?
  5. php三表关联,详解Yii2 hasOne(), hasMany()实现三表关联的两种方法
  6. C#接口(Interface)理解
  7. mysql读写分离有用吗_MySQL的使用中实现读写分离的教程
  8. BZOJ-1007-水平可见直线-HN2008
  9. 2021.02.05 Visual QA论文阅读
  10. ECCV 2018 MemTrack:《Learning Dynamic Memory Networks for Object Tracking》论文笔记