vim 常用命令总结(排版精良,内容优质)
1. 格式说明
- <xxx>:尖括号的含义表示这是一个占位参数,也就是必须有的参数,实际输入的内容是 xxx
- [xxx]:方括号的含义表示这是一个可选参数,也就是可有可无,实际输入的内容是 xxx
- 每行中前边是用法表达式,然后是四个空格,后边是用法解释。即组成格式为:用法表达式 + 四个空格 + 用法解释。用法表达式中有空格,就是需要加空格,没有空格,就表示不需要加空格。例如有些占位参数后边是没有空格的,它就是不需要空格,有些是有空格的,就表示必须有空格。
- ...:表示前边的参数可以有多个
2. vim 的进入与退出
进入 vim
- vim filename 打开或新建文件,并将光标置于第一行首
- vim +n filename 打开文件,并将光标置于第 n 行首
- vim + filename 打开文件,并将光标置于最后一行首
- vim + /pattern filename 打开文件,并将光标置于第一个与 pattern 匹配的串处
- vim -r filename 在上次正用 vim 编辑时发生系统崩溃,恢复 filename
- vim filename .... 打开多个文件,依次进行编辑
退出 vim
- ∶q! 离开 vim,并放弃刚才编辑的内容
- ∶wq 存盘并退出
- ∶w 存盘但不退出,等待用户继续键入命令
- ∶q 退出 vim,若文件被修改过,会要求确认是否放弃修改的内容。此命令可以与w
- ∶w filename 另存为名为 filename 的文件
3. 编辑命令
插入删除替换恢复
- i 在光标所在位置前插入新的字符
- A 在光标所在行尾开始插入新的字符
- x 删除光标后的字符
- X 删除光标前的字符
- r 替换光标所在字符
- R 替换当前字符及其后的字符,直至按 ESC 键
- s 删除光标所在的字符,并同时进入输入模式
- S 删除光标所在的行,并同时进入输入模式
- o 在当前行之下新开一行
- O 在当前行之上新开一行
- u 恢复刚才被修改的文本
- U 恢复对光标所在行的所有修改
剪切
- d 配合可视化使用,剪切选中的内容,单独使用无效
- dd 剪切当前行
- <n>dd 剪切 n 行
- d<n>G 剪切当前行至第 n 行的内容
- dH 剪切从当前行至所显示屏幕顶行的全部行
- dL 剪切从当前行至所显示屏幕底的全部行
- d<command> 剪切从当前行至命令 command 所指定行的全部行,例如:
dgg
、dG
- d$ 从当前光标剪切至行末,包含光标
- d0 从当前光标剪切至行首,不包括光标
- d<n>l 从当前光标向右剪切 n 个字符,包含光标
- d<n>B 从当前光标反向剪切 n 个单词,不包括光标
- dw 从光标处剪切至一个单子/单词的末尾,包括空格
- de 从光标处剪切至一个单子/单词的末尾,不包括空格
复制
- y 复制当前行和下一行
- yy 复制当前行
- <n>yy 复制 n 行
- +y 复制选中内容到 + 寄存器,也就是系统的剪贴板,供其他程序用
- y<n>G 复制当前行至第 n 行的内容
- yH 复制从当前行至所显示屏幕顶行的全部行
- yL 复制从当前行至所显示屏幕底的全部行
- y<command> 复制从当前行至命令 command 所指定行的全部行,例如:
ygg
、yG
- y$ 从当前光标复制到行末,包括光标
- y0 从当前光标复制至行首,不包括光标
- y<n>l 从当前光标向右复制 n 个字符,包含光标
- y<n>B 从当前光标反向复制 n 个单词,不包括光标
- yw 从光标处复制至一个单子/单词的末尾,包括空格
- ye 从光标处复制至一个单子/单词的末尾,不包括空格
粘贴
- p 粘贴复制的内容到光标所在位置
- "<n>p 粘贴 n 号寄存器的内容到光标所在位置
- "+p 粘贴系统剪贴板的内容到光标所在位置
- ":p 粘贴上一个Vim命令
- "/p 粘贴上一次的搜索关键词
寄存器
- :reg 查看寄存器以及寄存器里边的内容,第一列是寄存器的名字,第二列是寄存器的内容;其中
"+
寄存器表示系统剪切板,没有的话使用+d
+y
"+p
无效 - vim 提供了 10 类寄存器,可在 vim 中输入
:help registers
查看帮助- 匿名寄存器 ""
- 编号寄存器 "0 到 "9
- 小删除寄存器 "-
- 26 个命名寄存器 "a 到 "z
- 3 个只读寄存器 ": ". "%
- Buffer 交替文件寄存器 "#
- 表达式寄存器 "=
- 选区和拖放寄存器 "* "+ "~
- 黑洞寄存器 "_
- 搜索模式寄存器 "/
搜索
- /<name> 查找光标之后的名为 name 的字符串,查找到之后高亮显示
- :noh 取消高亮显示
光标跳转
- gg 跳到文件首
- G 跳到文件尾
- <n>gg / <n>G / :<n> 跳到第 n 行
- Shift + 6:跳到行首
- Shift + 4:跳到行尾
显示当前正在编辑的文件
- Ctrl + g 显示当前正在编辑的文件名
- :f 显示当前正在编辑的文件名
- :pwd 显示当前正在编辑文件的路径
vim 翻页
- Ctrl + f 向下翻一页,f=forward
- Ctrl + b 向上翻一页,b=backward
- Ctrl + d 向下翻半页,d=down
- Ctrl + u 向上翻半页,u=up
- Ctrl + e 向下滚动一行
- Ctrl + y 向上滚动一行
- zz 让光标所在的行居屏幕中央
- zt 让光标所在的行居屏幕最上一行,t=top
- zb 让光标所在的行居屏幕最下一行,b=bottom
其它
- :set number / :set nu 显示行号
- 永久显示行号:打开 vim 配置文件
~/.vimrc
,在里边添加set nu
,即可永久显示行号 - :set nonumber / :set nonu 取消显示行号
- :set ff 显示换行符格式
- :set ff=unix 把换行符设置为 unix 格式;在 Windows 下编写的 shell,需要把换行符换成 unix 才能运行
4. 多文件编辑
- 打开多个文件
vim filename1 filename2 ...
- 在打开的文件间切换
- :bn 下一个文件
- :bp 上一个文件
- :b<n> 切换至第 n 个文件
- :ls 列出打开的文件,带编号
5. 多窗口多文件编辑
- 如果在终端中开没有打开 vim
- 纵向分割显示:
vim -O filename1 filename2 ...
- 横向分割显示:
vim -o filename1 filename2 ...
- 纵向分割显示:
- 如果已经用 vim 打开了一个文件,想要在窗口中同时再打开另一个文件
- 纵向分割显示:
:split filename
或:sp filename
- 横向分割显示:
:vsplit filename
或:vs filename
- 纵向分割显示:
- 关闭窗口
- :q 关闭光标所在窗口
- :q! 关闭光标所在窗口并放弃修改
- :qa 关闭所有窗口
- :qa! 关闭所有窗口并放弃修改
- :w 保存当前窗口已修改内容
- :wa 保存所有窗口已修改内容
- 在打开的窗口之间切换:
Ctrl + w w
,即按住 Ctrl 键,再按两下 w 键
6. 可视化模式
为了便于选取文本,vim 引入了可视(Visual)模式。 要选取一段文本,首先将光标移到开始位置,在命令模式下按 v 进入可视模式,然后把光标移到结束位置,即可选中这段内容,然后使用剪切或复制命令,即可剪切或复制该段内容。需要注意,光标所在字符是包含在选区中的。
- v 进入字符可视化模式,文本选择是以字符为单位的
- V 进入行可视化模式,文本选择是以行为单位的
- Ctrl + v 进入块可视化模式, 可以选择一个矩形内的文本
常见用法:
- ggVG 全选
未完 ......
点击访问原文(进入后根据右侧标签,快速定位到本文)
vim 常用命令总结(排版精良,内容优质)的更多相关文章
- [转]vim常用命令
[转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...
- VI/VIM 常用命令
VI/VIM 常用命令=========== 整理自鸟哥的私房菜 ---------- - 移动光标 命令 | 描述----------------------- ...
- vim常用命令总结(转)
vim常用命令 -------------------------------------------------------------------------------------------- ...
- 转 vim常用命令总结
vim常用命令总结 vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束 ...
- Linux 之 Vim常用命令
Vim常用命令 参考教程:[千峰教育] 终端编辑命令工具: vi/vim.emacs等. vim简介: vim是vi的扩展,被誉为终端编辑之神. vim安装: yum install -y vim 工 ...
- Vim常用命令及配置方案
Vim常用命令及配置方案 几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...
- linux最强编辑神器vim常用命令大全:编辑、插入、删除、替换、保存...
我说vim是编辑器之神大家没有意见吧 下面分享一些vim常用命令,大家可以收藏一下 进入vim: vim配置: vim中光标移动: vim中屏幕滚动: vim中插入文本类: 文本替换: 格式 : 范 ...
- Vim常用命令总结
Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...
- vim常用命令(iOS)
iOS下vim的使用: vim 的三种模式: .一般模式(默认) .插入模式(写文字) .命令行模式(保存) 各种模式的功能区分如下: .一般模式:控制屏幕光标的移动,字符和光标的删除,移动复制某区段 ...
- 实用手册:130+ 提高开发效率的 vim 常用命令
Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.这里收录了130+程 ...
随机推荐
- Ubuntu16.04 RYU pip命令安装
pip命令安装方法 sudo apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev ...
- Assignment6:白盒测试方法
常用的软件测试方法有两大类:静态测试方法和动态测试方法. 其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试:而软件的动态测试是通过输入一组预先按照一定的 ...
- OpenMP基本概念【转】
OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计.编译器根 ...
- 部署gerrit环境完整记录【转】
开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如下:提前安装好java环境,mysql环境,nginx环境测试系统:centos6.5下载下面三个包,放到/ ...
- Jenkins自动化版本构建
1.拉取代码 2.更新父版本 更新依赖版本 3.打包并推送到maven私库 4.版本控制后提交代码并打成docker镜像 PS:修改pom.xml项目版本,这里我没使用插件,直接使用脚本进行修改,这样 ...
- 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)
string.vector 互转 string 转 vector vector vcBuf;string stBuf("Hello DaMao!!!");----- ...
- IsNull、rs、sum
<% 'response.write (IsNull(rs("month_finish_count_price"))) If IsNull(rs("month_fi ...
- php报错syntax error, unexpected T_GOTO, expecting T_STRING,报错文件与行数指向以下代码,是什么原因?
本机php版本是5.3.8,Apache/2.2.21public function goto($url, $msg=NULL) {if ($msg) {$this->jsAlert($msg) ...
- 004-行为型-11-解析器模式(Interpreter)
一.概述 提供了评估语言的语法或表达式的方式.这种模式实现了一个表达式接口,该接口解释一个特定的上下文.这种模式被用在 SQL 解析.符号处理引擎等. 意图:给定一个语言,定义它的文法表示,并定义一个 ...
- ES6深入浅出-13 Proxy 与 Reflect-1.Reflect 反射
阮一峰 http://es6.ruanyifeng.com/#docs/reflect MDN有一些简陋的介绍 https://developer.mozilla.org/zh-CN/docs/We ...