• vim配置


    转自:http://www.cnblogs.com/ypchenry/archive/2012/05/28/2520705.html

    相信每一vim本书都会介绍给初学者一个叫vimtutor的,可以花几十分钟时间跟着过一边。我总结一下最近看的

       移动

        只列我用的比较多的命令,所有的注释都用"(vim脚本注释符)

     1 h      "
     2 j      "
     3 k      "
     4 l      "右,not left
     5 w      "光标移动到下一个单词的首字符 a word forward
     6 b      "光标移动到上一个单词的首字符
     7 e      "光标移动到下一个单词的尾字符
     8 ge     "光标移动到上一个单词的尾字符
     9 $      "将光标移动到当前行行尾
    10 ^      "将光标移动到当前行第一个非空白字符
    11 0      "将光标移动到当前行第一个字符

          注:  1)  对于一个word(单词)边界的定义可以查看iskeyword选项.

                  2)  这些命令除了'0'命令以外都可以在前面接受一个记数,2$;上面所有命令可以在前面接受一些操作命令,如d$,dw等.

       搜索和定位标记与滚屏

         单字符搜索

    1 f<a>     "单字符搜索,fa是在当前行搜索下一个a,find a
    2 F<a>     "Fa是在当前行向前搜索上一个a
    3 t<a>     "ta是当前行搜索下一个a,光标停在a的前一个字符,to a
    4 T<a>     "与ta方向相反

           单词搜索

    1 /string    "全文本搜索一个字符串,如要找到单词"main"要用 /main
    2             如果文本有多个main,按下几次n就会移动到接下来的几个
    3             main中去;n前面也可以接受数字计数,如3n,就会找紧接
    4             着第三个main
    5 
    6string    "与/string的功能相同,唯一的区别就是搜索的方向相反

           注:  1)可以用:set noingorecase 忽略字符大小写

                   2)/和?命令都有记忆功能,可以用多次<UP>键选择搜索历史,记录命令最大的历史条数可以在会话viminfo上更改.

                   3)  搜索字符.*/?%$^[]等特殊字符要在前面加一个反斜杠转意

                   4) 搜索到孤立的单词,也就是前后都没有其他字符的(除了空格,制表符),如只搜the,不想搜到there或whether这样的,要用/<the>

                   5)  可以用:set hlsearch把要搜索的单词高亮显示,highlight search

            定位

    复制代码
    1 G      "光标移动到文件的最后一行
    2 15G    "光标移动到文件的第15行
    3 gg     "光标移动到文件的第一行
    4 45%    "光标移动到文件45%处
    5 H      "光标移动到当前屏幕的最开始,head or home
    6 M      "光标移动到当前屏幕的中间,middle
    7 L      "光标移动到当前屏幕的最后,last
    复制代码

            注:   CTRL+G查看当前光标位置

           标记

          1)在光标所在位置用m命令实现标记,如ma,就把当前光标状态标记为a,使用`a就会回到此光标位置;用:marks命令查看标记列表

          2):map设置简单的映射,如:map F5 i{<Esc>ea}<Esc>  ,当光标在main这个单词的m上时,按下F5,这个命令会main变成{main}

            滚屏

    复制代码
    1 CTRL+u       "窗口向上滚半屏
    2 CTRL+d       "窗口向下滚半屏
    3 CTRL+e        "向上滚一行,没太大实际意义
    4 CTRL+y        "向下滚一行
    5 CTRL+f        "向前滚一整屏
    6 CTRL+b        "向后滚一整屏
    7 zz            "当前行置于屏幕中央
    8 zt            "当前行置于屏幕顶端
    9 zb            "当前行置于屏幕底端
    复制代码

     改动

    复制代码
     1 x           "删除一个字符
     2 d           "其后跟任何一个位移命令,将删除从当前光标到位移终点处的文本
     3              内容,如dw,delete word                          
     4 c           "与d命令功能类似,不同的在执行完删除后命令进去Insert模式,change 
     5 dd          "删除一整行
     6 r           "等待键入下一个字符替代当前光标下的那个字符,如5rx
     7 p           "把需要内容放到光标下,put
     8 y           "复制,yank
     9 yy          "复制一整行
    10 "*yy        "把一行内容复制到剪贴板
    11 "*p         "把剪贴板内容复制过来
    复制代码

       

       定制VIM

          在linux系统的家目录下建一个.vimrc文件(ubuntu和fedora都需要自己建), 然后在vimrc下写一些vim脚本命令就可以配置你的vim了,在vim配置文件上,要注意用户配置文件优先与系统配置文件,在增加vim plugin的时候要在~/.vim下mkdir plugin ftplugin 等等,把想用到的  plugin(在/usr/share/vim/vim73/plugin或ftplugin或syntax)放到刚才新建的相应的文件夹下,当然如果对vim脚本比较熟悉也可以自己写一个plugin。下面是我的vimrc部分内容。

    复制代码
     1 set number
     2 set nocompatible    " 关闭兼容模式
     3 filetype plugin indent on
     4 syntax enable       " 语法高亮
     5 syntax on
     6 set shortmess=atI   " 去掉欢迎界面
     7 set autoindent
     8 set showcmd         " 显示命令
     9 set whichwrap=b,s,<,>,[,] " 退格键和方向键可以换行
    10 set incsearch       " 增量式搜索
    11 set ignorecase      " 搜索时忽略大小写
    12 set ai              " 自动缩进
    13 set si              " 智能缩进
    14 set showmatch       " 显示匹配的括号
    15 set history=400  " vim记住的历史操作的数量,默认的是20
    16 set autowrite
    17 "从系统剪切板中复制,剪切,粘贴
    18 map <F7> "+y
    19 map <F8> "+x
    20 map <F9> "+p
    复制代码

          viminfo

         时刻要注意有这么一个东西,她记录了 1)命令行历史记录和搜索命令历史记录 2)vim寄存器中的内容 3)文件中的标记 4)缓冲区列表 5)全局变量,每次推出vim时这些  信息都会存在viminfo文件中,下次启动vim时vim会读取viminfo中的内容并恢复这些信息。

         可以用:set viminfo=string保存更多的东西,string指代要保存的东西,语法是一个选项字符跟一个参数,一对对的选项参数用逗号隔开,如:set viminfo='1000,:set viminfo='1000,f2

     string里的可选选项有

    复制代码
     1 '  为多少文件保存标记信息
     2 f  是否保存全局标记,f0不保存,f1保存
     3 <  每个寄存器保存多少行
     4 :  要保存冒号命令的历史记录数
     5 @  要保存的输入历史记录数
     6 /  要保存的搜索命令历史记录数
     7 !  以大写开始并不含所有小写字母的全局变量
     8 h  开始是禁用hlsearch选项
     9 %  缓冲区列表
    10 c  使用'encoding'选项中的方法进行字符编码转换
    11 n  viminfo文件名字,必须是最后一项
    复制代码

     

       编辑多个文件

     1)在vim窗口下可以用:edit 编辑两外一个文件,不需要重新打开一个vim窗口,如:edit 1.c

     2) 启动vim是打开指定多个文件,如vim 1.c 2.c 3.c,:next跳转到下一个文件,:previous跳转到上一个文件,但跳转之前要保存当前文件,否则报错,所以最好用:wnext和:wprevious; :args显示整个文件列表和当前正在编辑的文件;:last和:first跳转到最后和最前一个文件。

        分割窗口

    复制代码
     1 :split    "横着分割
     2 :new      "横着添加一个新窗口
     3 :vsplit   "竖着分割
     4 :vnew     "竖着添加新窗口
     5 CRTL+W w  "按顺序切换小窗口
     6 CRTL+W h
     7 CRTL+W j
     8 CRTL+W k
     9 CRTL+W l   "按方向切换
    10 :qall      "关闭所有窗口
    11 :wall      "保存所有窗口
    12 vimdiff 1.c 2.c "创建一个垂直分割窗口比较这两个文件不同的地方
    复制代码

          页签

          :tabedit filename 在正在编辑的vim窗口建一个叫filename 的页签

          :tab split 新建一个页签

           gt命令或鼠标点击切换页签

     

    程序员的vim

     1)CTRL+Z挂起vim,fg命令回到vim挂起前状态

     2)zf创建折行,zo打开折行,zc关闭折叠

     3)tags,ctags *.c 为所有.c文件创建tags,ctags -R 将当前目录下包括子目录所有tags生成一个大的tags;:tag functionname转到fuctionname函数的定义处,也可以将光标放到函数名处,按下CRTL+]达到一样的效果;:ptag 获取函数参数列表;:stag 分屏显示

              注:可以下一个taglist(具体怎么设置google一下就知道了),显示tag的GUI,不过之前要安装Exuberant Ctagsvim的taglist不支持gnu的ctags

    4)假设正在编辑一个.c文件,光标在#include<sys/unistd.h>的左尖括号后面,此时按下gf(Normal模式),vim就会找到unistd.h头文件定义的地方

  • 相关阅读:
    2.Spring Boot 有哪些优点?
    3.什么是 JavaConfig?
    4.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    Java中的异常处理机制的简单原理和应用。
    垃圾回收的优点和原理。并考虑2种回收机制。
    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
    Request对象的主要方法:
    JSP的内置对象及方法。
    Servlet执行时一般实现哪几个方法?
    说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3732648.html
Copyright © 2020-2023  润新知