zoukankan      html  css  js  c++  java
  • Vim 常用技巧:

    Vim 常用技巧:

    将回车由默认的8个空格改为4个空格:

    命令:set sw=4

    修改tab为4空格:

    命令:set ts=4

    设置每一级的缩进长度:

    命令:set shiftwidth=4

    设置文件的编码:

    set fileencoding=utf-8

    进入vi的命令 

    vi filename :打开或新建文件,并将光标置于第一行首 

    vi +n filename :打开文件,并将光标置于第n行首 

    vi + filename :打开文件,并将光标置于最后一行首 

    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 

    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 

    vi filename....filename :打开多个文件,依次进行编辑 

     

    移动光标类命令

    h :光标左移一个字符 

    l :光标右移一个字符 

    space:光标右移一个字符 

    Backspace:光标左移一个字符 

    k或Ctrl+p:光标上移一行 

    j或Ctrl+n :光标下移一行 

    Enter :光标下移一行 

    w :光标右移一个字至字首 

    W:光标向前移动一个字串

    b:光标左移一个字至字首 

    B:光标向后移动一个字串

    e或E :光标右移一个字至字尾 

    ge:移动到前一个词的末尾

    ) :光标移至句尾 

    ( :光标移至句首 

    }:光标移至段落开头 

    {:光标移至段落结尾 

    nG:光标移至第n行首 

    n+:光标下移n行 

    n-:光标上移n行 

    n$:光标移至第n行尾 

    H :光标移至屏幕顶行 

    M :光标移至屏幕中间行 

    L :光标移至屏幕最后行 

    0:(注意是数字零)光标移至当前行首 

    ^:移动至当前行的第一个非空字符

    $:光标移至当前行尾 

    %:移动到大括号,小括号,中括号对应的另一半括号上。

    gg:移动到文档首

    nG:移动到第n行首

    G:移动到文档尾

    50%:移动到文件中间

    H:移动到视野首行

    M:移动到视野中间

    L:移动到视野尾行

    Ctrl+G:显示文件名,总行数,当前位置

    cd:显示当前的工作目录

    ma [a-z] 对特定位置进行标记,使用‘x或`x跳转到标记位置处,使用’‘或``跳回刚才位置

     

     

     

     

     

     

    屏幕翻滚类命令 

    Ctrl+u:向文件首翻半屏 

    Ctrl+d:向文件尾翻半屏 

    Ctrl+f:向文件尾翻一屏 

    Ctrl+b;向文件首翻一屏 

    Ctrl+e:向问价尾滚一行

    zz:将光标置于屏幕中间

    zt:把光标移至屏幕顶部

    zb:把光标移至屏幕底部

    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 

    set scrolloff=n:将光标置于第n行处

     

     

    插入文本类命令 

    i :在光标前 

    I :在当前行首 

    a:光标后 

    A:在当前行尾 

    o:在当前行之下新开一行 

    O:在当前行之上新开一行 

    r:替换当前字符 

    R:替换当前字符及其后的字符,直至按ESC键 

    s:从当前光标位置处开始,以输入的文本替代指定数目的字符 

    S:删除指定数目的行,并以所输入文本代替之 

    ncw或nCW:修改指定数目的字 

    nCC:修改指定数目的行 

     

    删除命令 

    ndw或ndW:删除光标处开始及其后的n-1个字 

    dw  删除一个单词

    daw    删除一个单词和单词后面的空格字符

    do:删至行首 

    d$:删至行尾 

    dn:删除n+1行

    ndd:删除当前行及其后n-1行 

    x或X:删除一个字符,x删除光标后的,而X删除光标前的 

    Ctrl+u:删除输入方式下所输入的文本 

    J: 将光标所在行与下一行之间的换行符删掉

    撤销命令:

    u:撤销之前的操作,例如删除操作

    Ctrl+R 重做刚才的操作

    .    使用点符号重复最后一次的修改操作

     

     

     

     

    搜索及替换命令 

    /pattern:从光标开始处向文件尾搜索pattern 

    ?pattern:从光标开始处向文件首搜索pattern 

    n:在同一方向重复上一次搜索命令 

    N:在反方向上重复上一次搜索命令 

    :s/p1/p2/g:将当前行中所有p1均用p2替代 

    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 

    :g/p1/s//p2/g:将文件中所有p1均用p2替换 

    set ignorcase   查找时忽略大小写

    set noignorecase   查找时区分大小写

    set hlsearch 设置查询结果高亮显示

    set nohlsearch 取消查询结果高亮显示

     

    选项设置 

    all:列出所有选项设置情况 

    term:设置终端类型 

    ignorance:在搜索中忽略大小写 

    list:显示制表位(Ctrl+I)和行尾标志($) 

    number:显示行号 

    report:显示由面向行的命令修改过的数目 

    terse:显示简短的警告信息 

    warn:在转到别的文件时若没保存当前文件则显示NO write信息 

    nomagic:允许在搜索模式中,使用前面不带“”的特殊字符 

    nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 

    mesg:允许vi显示其他用户用write写到自己终端上的信息 

     

    最后行方式命令 

    :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 

    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 

    :n1,n2 d :将n1行到n2行之间的内容删除 

    :w :保存当前文件 

    :e filename:打开文件filename进行编辑 

    :x:保存当前文件并退出 

    :q:退出vi 

    :q!:不保存文件并退出vi 

    :!command:执行shell命令command 

    :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 

    :r!command:将命令command的输出结果放到当前行 

     

    寄存器操作 

    "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 

    "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 

    "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 

    "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 

    ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。



    Vim更改字体
    2011年07月24日 星期日 上午 3:35


    在常规Vim下, 字体没有什么可改的, 因为它的字体是受限于终端的设置的. 不过在GVim中, 你就有可以想怎么改字体就怎么改了.

    Linux下改字体的主要命令就是这样的:

    :set guifont=Courier 14

    你可以把Courier改成任何你想要的字体, 14就是你想要改的字体大小(单位是pt).

    想要改Windows下的字体, 就要用下面的命令:

    :set guifont=Courier:14

    如果你不确定你的电脑上是否有那种字体, 你可以向下面这样, 在上面的命令后加一个逗号, 然后加上另一个字体. 如:

    :set guifont=Courier New 12, Arial 10

    如果你的字体名中有空格或者逗号, 你就需要用一个反斜线转义了. 如:

    :set guifont=Courier New 12

    这个命令就是将字体设成Courier New, 大小为12号, 不过只是在本次会话(session)中可用, 即关闭Gvim后, 又会回到原来的配置. 如果你想每次编辑文件都能使用这个字体, 就应该在gvimrc文件中加上一行上面同样的命令(但注意不要set前面的冒号 ' : ' ).

    [注] 当你在Windows, Linux(使用GTK+), Mac OS, 或者Photon, 你可以使用下面的字体来打开一个字体列表:
    :set guifont=*


    如果你想要让你的字体设置根据编辑的文件(代码, 文本, 日志等等)而改变, 你可以设置Vim让它通过文件的类型来改变当前的字体. 如, 如果你想在每次打开一个文本文件(.txt)时使用Arial 12号字体, 那你可以在vimrc文件中加上这样一条:

    autocmd BufEnter *.txt set guifont=Arial 12

    Gvim窗口会在每次字体的改变在自动地改变窗口大小. 也就是说你使用了一个小的字体, 你就会默认地得到一个小的窗口. 如果你有几个像上面的那样的配置, 几个不同的文件类型, 对应着几个不同的字体, 你会很明显地感觉这种变化. 当你用打开了另一种类型的文件时, 字体和窗口大小都会改变.

    [注] 你可以在Vim帮助系统中知道更多的关于改变字体的信息, 通过:help 'guifont'




    一、vim打开文档:

     1. vim 文档名   普通方式打开文档      

    2. vim +n 文档名      打开文档后,定位第n行

    3. vim ,进入vim界面之后使用命令 :e 文档名 打开文档,此方式可以在编辑一个文档的同时打开另外一个文档

    4.显示当前文档目录:先按1,然后Ctrl+G

    5. cd  #改变vim的当前工作路径

    6.lcd  #改变当前窗口的工作目录

    7.pwd  #查看当前的工作路径

    8.set autochdir  #自动设当前编辑的文件所在目录为当前工作目录

    二、多文档编辑:

    1. vim 文档1名 文档2名 ...

    2. vim ,进入vim后使用:e 文档名 打开文档

    3.多文档编辑的命令如下

    :n          编辑下一个文档。

    :2n        编辑下两个文档。

    :N          编辑上一个文档。注意,该方法只能用于同时打开多个文档。

    :e 文档名        这是在进入vim后,不离开 vim 的情形下打开其他文档。

    :e# 或 Ctrl+ˆ      编辑上一个文档,用于两个文档相互交换编辑时使用。?# 代表的是编辑前一次编辑的文档

    :files 或 :buffers 或 :ls     可以列出目前 缓冲区 中的所有文档。加号 + 表示 缓冲区已经被修改过了。#代表上一次编辑的文档,%是目前正在编辑中的文档

    :b 文档名或编号      移至该文档。

    :f  或 Ctrl+g     显示当前正在编辑的文档名称。

    :f 檔名         改变编辑中的文档名。(file)

    三、离开vim

    :q      如果文本没有修改,则会退出,否则会出现警告,且不能离开。

    :q!     放弃所有修改,强行离开。

    :wq     保存后离开即使文档没有修改过,也会再保存一次。

    :x        保存后离开,文档如果没有修改过则不会进行保存动作,直接离开。

    :w 文档名   即:另存为。不加文档名则是写入原文档。

    :qa 或 qa! 在打开多文档的情况下离开 vim。a 即 all 的意思。

    :ZZ  保存并退出当前文本

     将外部内容添加到已经打开的文档使用以下命令(双引号+加号+p):

    "+p

    四、 多窗口编辑

    :sp 文档名  在新窗口中打开文档

    Ctrl+w+n新建一个窗口

    两次Ctrl + w可以切换窗口

    Ctrl+t  跳转至上一个窗口

    :q  退出当前编辑窗口

                            

    帮助文档中使用  Ctrl+] 来跳转超链接,使用Ctrl+T或者Ctrl+O来跳转到前一个位置。

    修改文本的三种方法:

    操作符-动作,可视模式以及文本对象

    c2wxxx  修改两个单词的距离,并插入xxx

    cc    会修改一整行(会保留这一行的缩进)

    c$    修改到行尾

    x=dl    删除当前光标下的一个字符

    X=dh    删除光标左边的字符

    D=d$    删除到行尾

    C=c$    修改到行尾

    s=cl   修改一个字符

    S=cc    修改一整行

    p    在光标后面粘贴刚才删除的内容

    P    在光标前面粘贴刚才删除的内容

    xp    先删除,再粘贴,删除一个字符之后粘贴到另一个字符的后面,例如teh操作之后就变成了the

    x    删除光标下的字符 ("dl" 的缩写)
    X    删除光标前的字符 ("dh" 的缩写)
    D    从当前位置删除到行尾 ("d$" 的缩写)
    dw    从当前位置删除到下一个单词开头
    db    从当前位置删除到前一个单词的开头
    diw    删除光标上的单词 (不包括空白字符)
    daw    删除光标上的单词 (包括空白字符)
    dG    删除到文件末
    dgg    删除到文件首
     
     

    可视模式:

    v   使用v进入可视模式,然后选择任意多的文本

    o   在可视模式下选中文字后,使用o即可将光标移动至被选中的另一端

    y  拷贝

    yy 拷贝一整行

    yw 拷贝一个单词,然后使用p粘贴

    文本对象:

    cis    修改一个句子,表示 change inner sentence

    cas    表示修改一个句子,与上面操作的区别在于as包含句子后面的空白字符

    das    删除一个句子,包括句子后面的空白字符

    替换模式:

    R   大写的R命令可以使用连续的替换模式,使用小写r只能替换一个字符,使用退格键Backspace来回复被替换的字符。。

    ~    修改光标下字符的大小写

    I     大写的i在当前行的第一个非空字符开始插入

    A    移动到行尾开始插入





  • 相关阅读:
    angularJS之基础知识(一)
    angularJS之$http:与服务器交互
    angualrJS之表单验证
    python实现命令行中的进度条原理
    通过Arcpy在ArcMap工具箱中添加脚本计算面图层的起终点坐标
    关于ArcGIS API for JavaScript中basemap的总结介绍(一)
    初学JAVA--分支语句
    移动端开发通用适配
    js中Number.toFixed()方法的理解
    <div>标签仿<textarea>。contentEditable=‘true’,赋予非表单标签内容可以编辑
  • 原文地址:https://www.cnblogs.com/Zhanxueyou/p/ba1db59a8fa1fc11ac7c548e95a51eb9.html
Copyright © 2011-2022 走看看