zoukankan      html  css  js  c++  java
  • Vim-一款好用的文本编辑器

    关于vim的使用,通过博客,无论是静态的截图或者是代码/文本复制,很难展示所要表现的内容。更多需要读者亲自敲键盘实践之后才知道其作用。

    本文不会也无法描述vim过多的细节,仅仅是对于常用的命令做一下记录,因为vim的帮助文档很庞当。

    对于vim的初学者来说,可直接使用vimtutor教程先了解一下,关于该教程本人也实践过并撰写了博文:《vimtutor学习笔记》

    有遇到一些没有解释过的单词或者英文词汇,建议大家先看我的vimtutor教程或者man一下或者实践。

    简介

    vim是一款在Linux上强大的文本编辑器,同类型的强大对手是Emacs。

    vim的全拼是Vi IMproved,而Vi也是一款文本编辑器,vim相对vi增加了很多的新特性,例如语法高亮等。

    vim [options] [filelist]

    vim可以编辑单个文件或者多个文件。简单选项如下。

    +n:打开文件后,光标处于第n行的行首;

    +/PATTERN:打开文件后,光标处于第一个匹配到PATTERN的位置;

    +:打开文件后,光标处于最后一行的行首;

    命令基础

    此为一般模式(normal)与命令行(command-line)模式常用命令。

    一般模式命令语法格式。

    operator [numbers] motion

    部分可以只有双operator来表示光标所在行的操作,例如dd。

    operator operator

     

    移动/范围(motion)

    大部分命令,都可以结合motion。命令与motion的结合,motion可前可后,需要具体情况具体分析。

    3dd:删除3行。不能写成dd3。
    dw:删除光标处字符至下个单词的词首,不包含下个单词的词首。不能写成wd。

    下文,具体的命令中,就不再提到命令(operator)与motion的结合。

    毕竟这篇博文只打算用作常用命令参考!

    字符间

    hjkl:左下上右。

    单词间

    w:下一个单词词首。

    e:当前或者下一个单词词尾。

    b:当前或者上一个单词的词首。

    行首行尾

    0:绝对行首。

    ^:行首。

    $:行尾。

    行间

    gg:首行。

    G:尾行。

    nG:第n行。

    句间和段间

    (:上一句。

    ):下一句。

    {:上一段。

    }:下一段。

    可视化(visual)

    v:字符可视化模式。

    V:行可视化模式。

    括号匹配

    %:括号匹配。

     

    翻屏

    Ctrl+f:向下翻一屏。

    Ctrl+b:向上翻一屏。

    Ctrl+d:向下翻半屏。

    Ctrl+u:向上翻半屏。

     

    各种命令杂七杂八

    删除

    x:删除单个字符。

    dd:删除整行。

    进入插入模式

    i:insert,在光标位置插入。

    a:append,在光标位置的后面插入。

    o:在光标位置的下方打开一个新行,并使光标位于行首。

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

    A:在光标所在行的行尾插入。

    O:在光标位置的上方打开一个新行,并使光标位于行首。

    保存与退出

    w:保存。

    q:退出。

    ZZ、:x、:wq:保存并退出。

    q!:强制退出不保存。

    替换(replace)

    r:单字符。

    R:进入替换模式。

    改变(change)

    区别于替换,会进入插入模式。

    cc:整行改变。

    复制和粘贴

    y:复制。

    yy或者Y:整行复制。

    p:下/后粘贴。

    P:上/前粘贴。

    撤销与重做

    u:撤销。

    U:行撤销。

    CTRL-R:恢复撤销。

    .:重做。

    读取文件和写入文件(另存为)

    :r /PATH/FROM/FILE:读取文件并插入。

    :w /PATH/TO/FILE:另存为某个文件。

    地址定界

    :start_pos[,end_pos]

    m:第m行。

    .:当前行。

    $:最后一行。

    m,n:第m行到第n行。

    m,+n:第m行及其后面的n行。

    .,$-1:当前行至倒数第二行。

    1,$:全文。

    %:全文。

    /PATTERN/:第一次被PATTERN匹配到的行。

    /first/,$:第一次被first匹配到的行至最后一行。

    注意:匹配的时候,是从光标所在行开始向文件底部匹配。

    /PATTERN1/,/PATTERN2/:从光标所在处开始,第一次匹配到PATTERN1的行至第一次匹配到PATTERN2的行。

    查找

    查找中的pattern支持正则表达式,应该是BRE。

    /PATTERN:从光标所在行向下查找PATTERN所匹配的字符串。

    ?PATTERN:从光标所在行向上查找PATTERN所匹配的字符串。

    注意:以上2个都可以循环查找。

    n:下一个,与命令方向相同。

    N:上一个,与命令方向相反。

    查找替换

    s/SEARCH/REPLACE/MODIFIER

    SEARCH:表示所要查找的内容,支持RE。

    REPLACE:表示所要替换成的内容,不支持RE,但可以引用分组的内容。

      第一种引用的形式,和RE中是类似的。

      第二种引用的形式是引用整个SEARCH所匹配到的内容,即使用&符号。

    MODIFIER:表示修饰符。

      i:查找时忽略大小写。

      g:替换行中所有匹配到的内容。

      c:确认式替换。

    当SEARCH或者REPLACE中的内容存在“/”的时候,可以使用转义字符对其进行转义(“/”),或者使用其他字符(@或者#)代替。

    多文件

    # vim FILE1 FILE2 ...

    文件间切换

    :next:切换到下一个文件。

    :prev:切换到上一个文件。

    :first:切换到第一个文件。

    :last:切换到最后一个文件。

    退出多文件

    :wqall

    :wall

    :qall

    :qall!

    多窗口

    -o:水平分割窗口。

    -O:垂直分割窗口。

    Ctrl+w:切换到下一个窗口。

    Ctrl+w,s:在当前窗口水平切割出一个新的窗口。

    Ctrl+w,v:在当前窗口垂直切割出一个新的窗口。

    vim选项设置

    /etc/vimrc:全局配置文件。

    ~/.vimrc:用户配置文件。

    显示行号

    :set number
    :set nu
    :set nonumber
    :set nonu

    后续示例只写配置全写和缩写。

    自动缩进

    autoindent,ai

    高亮搜索

    hlsearch,hls

    增量搜索

    incsearch,ic

    语法高亮

    syntax on
    syntax off

    忽略字符大小写

    ignorecase,ic

    制表符宽度

    tabstop,ts

    帮助

    :help
    :help subject
  • 相关阅读:
    LaTeX技巧22:LaTeX文档中的参考文献初级
    latex 三个不同的图放在一行且每个图都有注释
    CTeX学习心得总结
    latex不能识别eps图片
    山东大学《运筹学》课程课件
    高级算法设计讲义 Lecture Notes for Advanced Algorithm Design
    《计算复杂性》课件
    全球知名大学课件下载地址汇总
    用LaTeX写线性规划
    有感北大校长王恩哥的十句话
  • 原文地址:https://www.cnblogs.com/alongdidi/p/vim.html
Copyright © 2011-2022 走看看