1. 导航

  1.1. 查看行号

    :set number  显示行号

    :set number!  隐藏行号

    :.=  在底部显示当前行号

    :=  在底部显示总行号

  1.2. 移动光标

    0 或 ^                  移动光标到当前行首

    $           移动光标到当前行尾

    w          移动到下个单词开头

    b           移动到上个单词开头

    :0 1G 或 gg       移动到首行

    :n 或 nG       移动到第 n 行

    :$ 或 G        移动到最后一行

    ''         回到开始搜索时所在行

     ``             回到上一次光标所在位置

    ctrl + u         向上翻滚半页

    ctrl + d       向下翻滚半页

    ctrl + b         向上翻滚整页

    ctrl + f          向下翻滚整页

    ctrl + n         关键词补完向下滚动

    ctrl + p         关键词补完向上滚动

2. 复制粘贴

  2.1. 根据行号选择多行复制

    :1,10t20   复制第 1 到 10 行的内容,粘贴到第 20 行后面。

    :1,10t.      复制第 1 到 10 行的内容,粘贴到当前行后面。

    :1,10y      复制第 1 到 10 行的内容到剪切板。

  2.2. 复制单行或连续多行

    yy      复制当前行

    Nyy    复制当前行及其后续 N-1 行。

    p        在当前行粘贴剪切板中的内容。

    yw     复制单个单词

    yl       复制光标覆盖字符

    yNw   复制 N 个单词

    Nyl     向右复制 N 个字符(含光标覆盖字符)

    Nyh    向左复制 N 个字符(不含光标覆盖字符)

    Np      粘贴 N 次已复制内容

    y$       从光标所在位置复制到行尾

    y^      从光标所在位置复制到行首(不含光标)

3. 搜索

  3.1. 查询字符串

    /string  向前查找字符串 string。

    ?string  向后查找字符串 string。

    n          按照当前顺序查找下一个。

    N          按照相反顺序查找下一个。

    *          查找光标覆盖单词

4. 编辑

  4.1. 撤销和恢复

    u               撤销操作

    <ctrl> + r  恢复操作

  4.2. 插入文本

    i  光标前插入

    I  当前行首插入

    a  光标后插入

    A  当前行尾插入

    o  当前下一行插入

    O  当前上一行插入

  4.3. 编辑文本

    r                替换光标所覆盖的单个字符

    R               连续替换光标所覆盖的单个字符

    cw             替换光标后一个单词

    cNw           替换光标后 个单词

    C 或 cc       清空当前行

    Ncc 或 cNc  清空当前 

  4.4. 删除文本

    x         删除光标覆盖的单个字符

    Nx         删除光标后 N 个字符

    dw        删除光标后一个单词

    dNw        删除光标后 N 个单词

    D         删除本行光标后面内容

    dd         删除当前行

    Ndd 或 dNd     删除当前后 N 行

    :X,Yd              删除第 X 行到 Y 行

    :X,$d              删除第 X 行到最后一行

5. 分屏

  5.1. 命令行启动

    vi -O file1 file2 ...  启动垂直分屏

    vi -o file1 file2 ...  启动水平分屏

  5.2. 关闭分屏

    <ctrl> q :q :hide   关闭当前分屏

    <ctrl> c                    关闭非最后一屏

    <ctrl> + w + o:only               关闭其他分屏

  5.3. 新建分屏

    <ctrl> s      上下分屏显示当前已打开文件

    <ctrl> v      左右分屏显示当前已打开文件

    :sp file :split file       在上方分屏打开新文件

    :vsp file:vsplit file       在左方分屏打开新文件

    :new file         在上方分屏打开新文件,如果未给定文件名则打开空白分屏

    :e file            在当前分屏打开新文件

      :Ex                                  开启当前工作目录

    :Sex                                在上方分屏打开工作目录

  5.4. 切换分屏

    <ctrl> + w + h       光标移动到左方分屏

    <ctrl> + + j      光标移动到下方分屏

    <ctrl> + + k              光标移动到上方分屏

    <ctrl> + + l               光标移动到右方分屏

    <ctrl> + + w             光标移动到下一个分屏

  5.5. 移动分屏

    <ctrl> + + H        分屏移动到左边

    <ctrl> + + J      分屏移动到下边

    <ctrl> + + K             分屏移动到上边

    <ctrl> + + L             分屏移动到右边

    

  5.6. 调整分屏尺寸

    <ctrl> + + =             将所有分屏调整为等高

    <ctrl> + + N+           当前分屏高度增加 N 行

    <ctrl> + w + N-     当前分屏高度减少 N 行

    <ctrl> + + N>           当前分屏宽度增加 N 列

    <ctrl> + + N<           当前分屏宽度减少 N 列

    :resN           当前分屏高度调整为 N 行

    :res+N                           当前分屏高度增加 N 行

    :res-N                            当前分屏高度减少 N 行

    :vertical resN        当前分屏宽度调整为 N 列

    :vertical res+N      当前分屏宽度增加 N 列

    :vertical res-N       当前分屏宽度减少 N 列

  5.7. 查看缓冲

    :b N       打开当前窗口中的第 N 个缓冲文件

    :ls        查看当前窗口的缓冲文件列表

  

6. 多标签

  6.1. 命令行启动

    vi -p file1 file2 ...  多标签编辑 file1, file2 ...

  6.2. 切换标签

    gt:tabn     切换到右侧标签

    gT:tabp   切换到左侧标签

    :tabr       切换到第一个标签

    :tablast       切换到最后一个标签

    :tabm N     将当前标签移动到第 N 个位置

  6.3. 开关查看标签

    :tabnew file :tabe file   在新标签编辑文件

    :tabc               关闭当前标签   

    :tabo                       关闭其他标签

      :tabs              查看所有打开的标签

7. 与 Shell 交互

  7.1. 执行命令

    :! command        在 Vim 中执行 shell 命令

  7.2. 切换

    :sh:shell<ctrl> + z     挂起 vi 进程

    fg<ctrl> + d        返回 vi 进程

8. 锁定滚动

  8.1. 锁定终端屏幕滚动

    <ctrl> + s  锁定屏幕滚动

  8.2. 解锁终端屏幕滚动

    <ctrl> + q 解锁屏幕滚动

参考:Vim tips and tricks

[Vim] Vim 常用基本操作的更多相关文章

  1. vi/vim编辑器的基本操作

    vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准备(下载gvim ...

  2. windows下vi/vim编辑器的基本操作

    windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...

  3. (转)vim(vi)常用操作及记忆方法

    vim(vi)常用操作及记忆方法 原文:https://www.cnblogs.com/doseoer/p/6241443.html vi(vim)可以说是linux中用得最多的工具了,不管你配置服务 ...

  4. Vim中的基本操作

    Vim中的基本操作 vim介绍.实验知识点.Vim中的六种基本模式 2.1 vim 6种模式介绍 从vi衍生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执 ...

  5. Vimrc配置以及Vim的常用操作

    """"""""""""""""&quo ...

  6. VIM一些常用命令,方法,配置

    配置文件地址 github 工具只是为了更好的工具,选择一种,坚持使用学习记忆,熬过瓶颈期就可以了. 现在我基本大的项目是IDE+vim 插件,写小代码是VIM. 常用的操作,便捷的方法 1.如何选中 ...

  7. Vim中常用的命令行

    Vim中常用的命令行... ------------------- 一些真正强大的武器总不是那么容易驾驭的,主角总得付出一些努力才能收获到更加强大的力量,对于 Vim 这种上古神器来说更是如此.由于它 ...

  8. Sublime编辑器上的Linux Vim插件常用快捷键

    Sublime编辑器上的 Vim 插件常用快捷键 vim 的设置: 在Reference-> User Settings(首选项--> 设置用户) 选项,点击进入配置文件编辑状态,默认的用 ...

  9. vim最常用命令

    vi/vim常用命令汇总 vi/vim概述 vi/vim是Linux和Unix下的一款非常强大的编辑器,vim是vi的增强 版,命令更加多种和复杂,但是最常用的也就是那几个. vi有三种模式 命令行模 ...

  10. vim的常用指令

    vim的常用指令如下: 光标运动: h,j , k, l (上/下/左/右) 删除字符: x 删除行 : dd 模式退出 : Esc,Insert(或者i) 退出编辑器 : q 强制退出不保存: q! ...

随机推荐

  1. 《FPGA全程进阶---实战演练》第八章之程序架构格式说明

    首先在书写程序时必须有的部分,就是模块module部分,整体的架构如图8.1所示. 图8.1 程序整体架构 首先要声明模块名,在module后面加上模块名,这里最好以所建立模块要实现的功能去命名此模块 ...

  2. SpringBoot系列一:SpringBoot的产生

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 长期以来 Java 的开发一直让人所诟病: ·Java 项目开发复杂度极其高: · Java 项目的维护非常困难: · 在云时代 ...

  3. Java数组填充和初始化

    Java中,如何填充(一次初始化)数组? 示例 此示例使用Java Util类的Array.fill(arrayname,value)方法和Array.fill(arrayname,starting ...

  4. R绘图系统中的坐标系

    在R语言中,对于图中的点来说,有很多种坐标系来进行定位 举个例子: par(omi = c(1, 1, 1, 1), mai = c(1, 1, 1, 1), mfrow = c(1, 2)) plo ...

  5. linux下nginx安裝

    1.yum安裝 yum安裝  http://nginx.org/packages/centos/7/noarch/RPMS/ 第一步: 安裝命令: yum localinstall http://ng ...

  6. PHP数组排序函数array_multisort()函数详解(一)

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  7. 在PC上运行安卓(Android)应用程序的几个方法

    三种方法: 1.在PC安装一个安卓模拟器,在模拟器里面运行apk: 2.虚拟机安装 Android x86 然后在此系统里运行: 3.利用谷歌chrome浏览器运行(这是一个新颖.有前途.激动人心的方 ...

  8. WPF TextBox属性IsReadOnlyCaretVisible

    纠结了半天WPF下只读的TextBox怎么显示输入焦点提示,发现wpf 4中已有新属性“IsReadOnlyCaretVisible”,大善^_^

  9. [转]Linux内核源码详解--iostat

    Linux内核源码详解——命令篇之iostat 转自:http://www.cnblogs.com/york-hust/p/4846497.html 本文主要分析了Linux的iostat命令的源码, ...

  10. 手机端网页使用html5地理定位获取位置失败的解决办法

    网上有很多关于html5 geolocation 获取地理定位的方法,我试了下,只有在IE edge浏览器可以成功获取到,在chrome,firefox,手机端的safari,QQ浏览器,微信浏览器, ...