查看帮助手册

常用命令及说明

在命令模式下编辑

命令 说明
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+f 向文件尾翻一屏
Ctrl+b 向文件首翻一屏
Esc 从编辑模式切换到命令模式
ZZ 命令模式下保存当前文件所做的修改后退出vi
:行号 光标跳转到指定行的行首
:$ 光标跳转到最后一行的行首
x或X 删除一个字符,x删除光标后的,而X删除光标前的
D 删除从当前光标到光标所在行尾的全部字符
dd 删除光标行正行内容
ndd 删除当前行及其后n-1行
?nyy 将当前行及其下n行的内容保存到寄存器 ? 中,其中 ? 为一个字母,n为一个数字
p 粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方
P 粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方
/字符串 文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示
?name 文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示
a,bs/F/T 替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作
a 在当前字符后添加文本
A 在行末添加文本
i 在当前字符前插入文本
I 在行首插入文本
o 在当前行后面插入一空行
O 在当前行前面插入一空行
:wq 在命令模式下,执行存盘退出操作
:w 在命令模式下,执行存盘操作
:w! 在命令模式下,执行强制存盘操作
:q 在命令模式下,执行退出vi操作
:q! 在命令模式下,执行强制退出vi操作
:e文件名 在命令模式下,打开并编辑指定名称的文件
:n 在命令模式下,如果同时打开多个文件,则继续编辑下一个文件
:f 在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例
:set number 在命令模式下,用于在最左端显示行号
:set nonumber 在命令模式下,用于在最左端不显示行号
w 移动到下一个单词开头,这样就比单纯的使用l要好很多,快很多
e 移动到当前单词的末尾
b 光标向后移动一个单词,同理,比h要好
0 光标移动到行首(并不会忽略空格和缩进)
^ 光标移动到当前行第一个单词的开头,这个用得比0要多
$ 光标移动到行尾,不知道为什么,我一直觉得这个操作很麻烦,能有个其他相对简便的就好了
( 光标移动到下个句子,也就是说移动到下一个空白行
) 光标移动到上个句子 Ctrl + f:向下移动一屏。
Ctrl + b 向上移动一屏。
G 到文件尾
numG 移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg 到文件首
H 移动光标到屏幕上面
M 移动光标到屏幕中间
L 移动光标到屏幕下面
* 读取光标处的字符串,并且移动光标到它再次出现的地方。
\# 和上面的类似,但是是往反方向寻找。
/text 从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n。
?text 和上面类似,但是是反方向。
ma 在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a 到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`. 到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
Ctrl+p 自动补全
Ctrl+n 自动补全
s/vim/vi/ 表示替换当前行的第一个vim为vi
s/vim/vi/g 表示替换当前行所有的vim为vi
dw 可以删除到下一个单词的开头
de 可以删除到本单词的末尾
dd 删除整行
3dd 删除3行
D 从光标处删除到该行末尾
d0 从光标处删除到该行开头
dd/yy/cc 剪切/拷贝/剪切(并进入插入模式)当前行

在VISUAL模式下编辑

命令 说明
v 按字符进行选择
V 按行进行选择
Ctrl + v 按块进行选择
d 剪切
y 拷贝
c 剪切并且粘贴时会进入插入模式

插入模式的编辑

直接编辑即可,简单

语法

vi(选项)(参数)

选项

+<行号>:从指定行号的行开始先是文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能;
-n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。

参数

文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。

VIM操作手札的更多相关文章

  1. vim操作备忘录

    vim操作备忘录 vim 备忘录 vim的书籍虽然看不不少,可是老是容易忘记,主要是自己操作总结过少,这个博客就主要用来记录一些比较常见的术语和操作,以防止自己再次忘记. <leader> ...

  2. linux下vi或vim操作Found a swap file by the name的原因及解决方法

    在linux下用vi或vim打开Test.java文件时 [root@localhost tmp]# vi Test.java出现了如下信息: E325: ATTENTION    Found a s ...

  3. [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)

    Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...

  4. VIM操作基础命令

    VIM操作基础命令 1 文件操作 1.1 打开文件 VIM 使用 –o 或 –O 选项打开多个文件,其中 –o 表示垂直并排,例如 vim -o lesson4 lesson5 lesson6.大O表 ...

  5. vim学习笔记(1)——vim操作

    仅记录一些自己最经常使用的vim操作.随时更新 文本操作 d 剪切.双击剪切一行 y 复制,双击复制一行 p 粘贴 x 删除当前光标下字符 r 替换当前光标字符.后面接替换的字符 :s/old/new ...

  6. VIM操作常用指令(转)

    vim是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是"visual interface&q ...

  7. Ubuntu/Linux 下pdf阅读器Zathura(类vim操作)

    Ubuntu下源安装: sudo apt-get install zathura 操作总结: 基本操作与vim一致,对于熟悉vim快捷键的十分方便: 向下移动一页是J(Ctrl+f),向上移动一页是K ...

  8. vim操作集合

    Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...

  9. vim操作笔记

    1.切换到下一个文件 假设要切换的文件名为 test.py :ex test.py 2.文档内复制命令 yy "复制光标所在行.或大写一个Y. 2yy "复制两行. y^ &quo ...

随机推荐

  1. scala中的self type

    scala目前的书籍有两<快学scala>和<scala编程>.资料确实不多,对这个语法使用只能结合使用进行理解. 先看源码: private[spark] trait Act ...

  2. ubuntu - 官方简体中文wiki,有你想要的ubuntu的一切

    ubuntu官方简体中文wiki:http://wiki.ubuntu.org.cn/%E9%A6%96%E9%A1%B5

  3. SingleClass单例类

    前言 对于一个单例类,无论初始化单例对象多少次,在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死,该实例对象就不会被释放,并且该对象是全局的,能够被整个系统访问到. 在应用这个模 ...

  4. Redis源码阅读---连接建立

    对于并发请求很高的生产环境,单个Redis满足不了性能要求,通常都会配置Redis集群来提高服务性能.3.0之后的Redis支持了集群模式. Redis官方提供的集群功能是无中心的,命令请求可以发送到 ...

  5. C# 添加,修改,删除Xml节点

    //添加xml节点    private void AddXml(string image, string title)     {        XmlDocument xmlDoc = new X ...

  6. AP_MergeSql

    ) FROM DELTA.PRMCN WHERE ETL_FLAG IN ('A','D')) S; --重跑:删除已跑入数据 DELETE FROM CCRD.PRMCN WHERE JOB_SEQ ...

  7. C语言数据结构-单链表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

    1.数据结构-单链表的实现-C语言 typedef struct LNode { int data; struct LNode* next; } LNode,*LinkList; //这两者等价.Li ...

  8. Qt 学习之路 2(20):event()

    Qt 学习之路 2(20):event() 豆子 2012年10月10日 Qt 学习之路 2 43条评论 前面的章节中我们曾经提到event()函数.事件对象创建完毕后,Qt 将这个事件对象传递给QO ...

  9. react 中文文档案例一 (倒计时)

    1.函数试组件 import React from 'react'; import ReactDOM from 'react-dom'; function Clock(props){ return( ...

  10. C语言中函数声明、形参、实参

    函数原型: 原型prototype是函数的声明:描述了函数的返回值与参数: 函数原型说明了两点: 1.该函数的返回值 2.该函数的参数及其类型 ++++++++++++++++++++++++++++ ...