zoukankan      html  css  js  c++  java
  • Vim篇

    Vim编辑器中的一些常用命令:

    1:shift+* , 选取光标所在处的整个字符,并查找。(十分方便),快捷键gd

    2:set nu , 显示各行行号,使得基于行的命令更方便。nG移动都某一行

    3:shift+% , 应用在光标处为圆括号、大括号时,来查找另一个与之匹配的圆括号,大括号。

    4:ctrl+g , 显示当前文件的名称,读写属性,当前行号,百分比等。

    5:shift+g , 跳转到文件最后一行。

    6:在命令模式下直接输入行号,跳转到指定行,用的比较多的(:0),跳转到第一行。num+G 直接跳转到某一行。

    7:在已选中的状态下,小写n向下搜索,大写N向上搜索。

    8:%s///g全局替换,相应的将%换为num1,num2表示在num1--num2的区间内进行替换,Eg:0,10 s///g(注意///内的特殊字符必须加转换字符)。

    9:ctrl+v ,进入visual模式,可以进行块选择,块操作。 如y进行复制,p进行黏贴。

         v进入virtual模式,以字符为单位。

         V进入virtual模式,以行为单位。

    10:dd表示删除一行,x表示删除当前字符(光标停在某一个字符上,一直按x可以删除其后边的所有字符)。num+dd 向后直接删除num 行

    11:x来删除当前字符。

    12:0移动到行首,$移动到行尾。w向后移动一个word,b向前移动一个word,e向前移动到单词尾。

    13:a在光标后插入,o当前行尾插入一个新行,O在当前行首插入一个新行。

    14:在insert模式下,通过ctrl+p/ctrl+n可以打开自动补全的操作。

    15:s替换当前字符。

    16:批量插入,在virtual block下,通过大写I来输入,之后推出编辑模式即可。

    17:recording功能:在正常模式下, 按下q键进入recording模式,

                                 选择a-z或者0-9作为缓冲器的名字,准备开始录制宏,此时gvim显示recording模式

                                 进行自己的操作,每一步的操作都会记录到该宏中

                                 在正常模式下输入q,结束宏的录制

                                 使用@+缓冲器的名字的方式来调用刚才的宏,在@前加入数字,表示重复的次数

    18:gvim中打开另一个文本文件,:e+路径 

    19::sp/:vsp进行分屏操作,:new横屏打开新的文件,加名字后就是新的文件名, ctrl w 之后 v回车 打开新的分屏

       ctrl w + 方向键,切换屏幕

    20:diff操作,在:vsp的基础上,使用:set diff命令

    21:fold命令,在normal模式下,对一段文字自动加折叠,zf

                        在normal模式下,输入zo并回车,来打开折叠,关闭折叠zc

    22:wrap命令,vim会自动折行超过一个屏幕的文本,:set nowrap来取消折行,需要向右移动屏幕来查看一行的内容

                                                                          :set wrap恢复vim的自动折行

            自动加换行符::set textwidth = 70,每行超过70个字,自动换行

    23:vim中的大小写转换命令,gu/gU转换为小写和大写

                                            ggguG:gg移动到文件的第一个字符,gu将选中的字符转为小写,G移动到文件末尾。

                                            相应的还有gggUG

    24:gvim -p *以多标签的方式打开该目录下的所有文件,:tabn表示移动到下一个tab,:tabp表示移动到下一个tab。

           :qa表示关闭所有的tab。

    25:ctrl + o跳转表内的变动。跳转到旧的光标位置。

          ctrl + i,按跳转表,跳转到新的光标位置。

           :ju打出跳转表

    26:ctrl+上箭头/下箭头,带着改行,进行移动。

    27:shift+左箭头/右箭头,按单词进行跳转。 或者b向前按word移动,e向后按word移动。

    28::e!,放弃修改,重新打开文件。

    29:{}/()在空行之间移动。

    30::shell从gvim跳到shell中。exit从shell退出到gvim

    31::Ex浏览当前目录下的所有文件。o打开某个具体的文件。

    32:gf,go to file,快速打开文件。bf,回到之前的文件

    33::w/:f+文件名  重命名文件名。

    34:按单词向后移动,w,按单词向前移动,b

    35:yw赋值一个word,dw删除一个word,cw删除当前到word结束,进入编辑模式

    36:caw,vim中删除一个word进入编辑模式

    37:ve快速选中,光标到word结束的文本,yw选中该word。

    38:shift+J:表示将下一行接到上一行,合并上下行。

    39:g+J:同一行内进行上下移动

    40:zz:指针所在行,移动到屏幕中间

    41:q:可以打开命令行窗口,当命令比较长时,可以在这个窗口进行编辑,正文中复制的数据也可以在命令行窗口使用

    42:set autochdir 让vim根据编辑的文件自动切换工作目录

    43:b2/b3进入buffer num进行编辑,bd num关闭某一个buffer,buffers显示所有的buffer.

    44:cw,删除光标到单词结束的字符

    45:R进入替换模式,不进行编辑,自动替换之后的字符

    46:某个命令的帮助,:help cmd来显示调用,:verbose cmd显示最后一次执行命令的文件,:cmd直接执行vim的set等指令

            :help foldmethod,       :verbose set foldmethod    

    47:shift+C,清除鼠标之后的该行内容

    48:ctrl + [,退出编辑模式,但是并不保存内容

    49:行内搜索,f命令,向后搜索,fx搜索下一个x字符。

              t命令,向前搜索,tx搜索下一个x字符。

    50:统计某个字符的出现次数,:%s/string/&/gn  也可以限制匹配行, :n,m %s/string/&/gn

    51:resize/vertical resize +- num,动态调整窗口大小。

    52:-geom,指定初始gvim窗口大小,winsize,指定当前gvim的窗口大小,winpos,指定当前gvim的位置。

    gvim中的自动排版:

    设置,filetype plugin indent on

         set cindent shiftwidth=4

    然后在可视模式下,“=”来完成选择区域的自动排版

    gvim中的标记:

    m{a-z},只是用来标记当前文件。

    m{A-Z},全局标记,退出gvim之后,再打开,标记还在。

    `{a-z},移动到标记位置,

    :marks,显示所有的标记;

    :delmarks!,删除所有的标记;

    :delmarks a b,删除标记a和b;

    :delmarks a-c,删除标记a b c;

    gvim中的文件操作:

    1)%表示当前文件的文件名,    :w % %.bak将文件备份到.bak

    2)直接打开目录,   :Explore,浏览该目录   :Sexplore,在水平分割窗口浏览该目录    :Vexplore,在垂直分割窗口浏览该目录

    3)直接用bash命令来打开,   :ls,显示该目录下的文件,可以使用,:Ex命令来执行新的命令

        r!command,可以将cmd的执行结果,插入到当前行的下一行。 r!date

        起始行号,结束行号!command,将执行范围内的内容交给shell命令处理。1,4!sort

          .默认表示当前行,.!tr [a-z] [A-Z],对当前行大小写转换。

          1,3w!sort,只是将范围内的内容交给shell命令处理,但是并不更新vim中的文件内容。

    gvim中的换行:

    ,表示回车,在vim中显示为^M

    ,表示换行,在vim中显示为回车且换行,对于window的风格换行( ),在vim中显示为^M

    如果使用:%s命令来进行替换,应当使用 而不是 ,    :%s/,/ /   如果使用 ,目标会被替换为空字符NULL

    将window风格换行( )的文件转换为Unix风格的换行( ),    :set fileformat=unix :w

                                                    :set fileformat=unix, dos表示vim将UNIX文件格式作为第一选择,dos的格式作为第二格式

    在vim中搜索换行。仍然使用 来表示,   /foo bar

    vim显示的显示换行符合制表符,      :set list,换行符用“$”表示,制表符用“^I”表示

    :%s/ //g,  删除所有的换行符

    :%s/ //g,  删除dos文件中的回车符"^M"

    :%s/ / /g,  将dos文件中的回车符转换为真正的换行符

    :%s/^ {3}//g,  删除三行空行

    gvim中的正则表达式:

    vim中的正则表达式,主要用在/和:s命令中,vim有一个magic的设定,表示元字符的反斜扛问题,可以通过mM来临时开关

    magic(m):表示除了$.*^之外的其他元字符都要加反斜扛,magic(M):表示除了$^之外的其他元字符要加反斜扛

    /m.* 查找任意字符串,    M.*查找.*               .*的转义只需要加一个反斜扛

    其他的元字符:/  \  [  分别表示反斜扛,左框

    匹配中的字符集:

    [abc], [a-d]显示指定字符集,[^abc]除abc之外的字符。

    d,数字集合,D,非数字集合,x匹配十六进制数,X匹配非16进制数,w匹配单词字母,W匹配非单词字母

    ,匹配TAB字符,s匹配空白字符,S匹配非空白字符,l小写字母,L非小写字母,u大写字母,U非大写字母

    匹配中的数量字符:

    +匹配1-任意值,?匹配0和1,{n,m}匹配n-m个,{-n,m}表示尽可能的匹配少的

    锚位字符集:

    <单词词首,>单词词尾,$行尾,^行首

    替换变量的使用:

    :s/(w+)s+(w+)/2 1/   交换匹配到的word1和word2的位置。

    gvim中的g命令:

    g命令表示对文本进行搜索,匹配行进行相应的操作,g!命令或者v命令表示对没有匹配到的行,进行相应的操作

    :g/<pattern>/d:将所有匹配到的行,删除

    :g!/<pattern>/d:将所有没有匹配到的行,删除

    :g/^s*$/d:删除所有空白行

    :g/<pattern>/t$:将匹配到的行,都copy到文件尾部   :t表示copy到

    :g/^/m0:将所有的行依次移动到行首,实现行倒序排列

    :g/^/+1d:删除所有的偶数行

    :g/<pattern>/s/aaa/bbb/:将匹配到的行内的aaa转换为bbb

    vim配置中的map/nmap/vmap操作:

    映射可以应用在5中模式中,普通模式,可视模式,插入模式,命令行模式,操作等待模式:

    map  lhs  rhs:将键lhs映射为rhs

    noremap/unmap:不能重新remap/取消map

    mapclear:清除映射

    这四个命令,都可以加前缀i(插入模式),(c命令行模式),(n正常模式),v(可视模式)表示在某个模式下有效

    nmap:只是normal模式下有效

    特殊参数:<buffer>, 映射只局限于当前缓冲区,<silent>,执行命令时,不在命令行回显,<unique>在定义键时,检查该键是否已经被映射

    map <silent> <ctrl-w> :w! <CR>

    <leader> <mapleader>两个全局变量

    vim中括号的自动补全:如果需要跳出该补全,需要写一个function

    inoremap ( ()<ESC>i

    inoremap { {}<ESC>i

    vim中的折叠

    1)设置折叠方式:set foldmethod/fdm = ***

    主要方式有六种,manual/indent(缩进,对大括号的中间部分进行折叠)/expr/syntax/diff/marker,其中marker和manual可以使用折叠命令进行折叠

    2)折叠命令:zf创建折叠,zo打开折叠,zC所有折叠点进行折叠,zD,删除所有折叠点,zc对单个折叠点折叠,zd对单个折叠点删除

    EX mode shift q

    ex是unix下的一个文本编辑器,在早期,显示器并不像现在这么好用,只能按行显示,当需要显示某行时,需要显示的输入命令,显示器才会显示那一行。

      而vi就是ex的virtual mode。

    vi中的:w等命令都是直接来自于ex命令的,

    ex filename,打开某一文件。输入virtual或者vi直接进入普通的vi界面。

    ex命令都是基于行的,而获得行号的命令有:

      1) 3:直接输入行号;

      2) 3,6:行范围;

      3) .:当前行;

      4) /pattern/ :满足pattern的第一行;

      5) $:最后一行;

      6) %:每一行;

    相应的命令有:

      1) d:删除

      2) m:move 移动

      3) 打印出全部搜索结果,:g/pattern/nu

      4) 使用|,批处理,3,6d | g/pattern/nu

    vimrc配置:

    1) 设置高亮搜索set hlsearch,搜索不区分大小写,set ignorecase。

    2) 使用的color scheme, set backgroud=dark,  colorscheme  desert。

     设置字体大小,set guifont=*   gvim会弹出对话框,按提示选择字体大小

    3) 设置文件类型为unix, set fileformats=unix,dos。

    4) 设置自动加载更新, set autoread。

    5) 设置搜索行高亮,set cursorline,  set  cursorcolumn,hi  Cursor  guibg=Green,  hi。

    6) 设置vim默认窗口的大小,set lines=35 columns=118。

    7) 设置自动切换默认的dir,set autochdir。

    8) 在字节没输入完成的情况下搜索,set incsearch,高亮搜素,set hlsearch。

    9) 设置自动缩进,在前一行空5个字符的情况下,回车之后,新的一行也空5个字符,set autoindent。

    10) 关于折行,set wrap,会出现屏幕折行, set linebreak,会在空白或者标点处自动折行。

    11) 动态显示匹配的括号, set showmatch。

    12) 隐藏工具栏和菜单栏, set guioption-=m,set guioption-=T 

    13) 设置fold类型, set foldmethod=manual。

    14) 显示行号,set nu

    15) 设置鼠标亮度,hi  Cursor  guibg=Green,  hi  Cursor  guifg=Black,

      设置当前列高亮,hi  CursorColumn  guibg=LightBlue  guifg=slategrey。

      设置当前列高亮,hi  cursorline  guibg=purple  guifg=slategrey。

      设置command的高亮,hi Comment gui=bold guifg=gray50。

    16) 设置状态行,set laststatus=2,hi  StatusLine guifg=SlateBlue guibg=Gray。

    16) h:cmd  可以打开所有的vim help文档。

    17) 通过map在gvim中实现svn的命令:

      let $filename = expand("%")  “”扩展当前文件名,存在变量filename中。

      nmap <Leader>co :! svn co $filename

      nmap <Leader>ci  :! svn ci  $filename

      nmap <Leader>up  :!  svn up  $filename

    15) 设置大小写的匹配,set ignorecase,匹配时,不区分大小写。

                 set smartcase,匹配时,只是在存在一个或以上大写字母时,仍保持敏感。

    16) 文件类型的检测,filetype on,

      允许filetype的插件,filetype  plugin on,

      设置filetype的缩进,filetype  indent  on, autocmd  Filetype  c,cpp  set  tabstop=4 

    17) 设置语法高亮,syntax enable,  syntax on,

    18) noswapfile,不在产生中间的swap 文件。

    19) 设置缩进宽度, set tabstop=4    "读取文件 ,转换为4个空白"

             set softtabstop=4   "backspace的时候,解释为4个空白"

             set shiftwidth=4    "设置tab的宽度为4"

             set expandtab    “自动将tab扩展为空格”

    20) taglist插件使用:

        let Tlist_Show_One_File=1     “只显示当前文件的tags”

        let Tlist_winWidth=40      “设置taglist的宽度”

        let Tlist_Exit_OnlyWindow=1  "如果taglist是最后一个窗口,则退出vim"

        let Tlist_Use_Right_Window=1  “在vim窗口的右侧显示taglist窗口”

        nmap <silent> <tl>  :TlistToggle <CR>   "打开关闭taglist"

      set cscopetag之后,可以在多个tag中选择某一个路径下的tag。

    21) minibufexplorer的配置:

        let g:miniBufExplMapWindowNavVim = 1

        let g:miniBufExplMapWindowNavArrows = 1

        let g:miniBufExplMapCtabSwitchBufs = 1

        let g:minibufExplModSelTarget = 1

        let g:miniBufExplVSplit = 26

        let g:miniBufExplBRSplit = 1

        let g:miniBufExploreMoreThanOne = 0

      相对的nmap配置,

        nmap <slient> tm  :TMiniBufExplorer <CR>

    22) nmap设置,

        nmap <slient> <c-n>  :bn <CR>

        nmap <slient> <c-p>  :bp <CR>

        nmap <silent> v :Vexplore <CR>

    ctags命令,ctags  -R  -f  ~/ctags_file  --languages=systemverilog work_dir。 

  • 相关阅读:
    Mac安装Git以及Git和Github使用教程
    JMeter 聚合报告之 90% Line 参数说明
    [loj3525]喷泉公园
    dapr微服务
    Online SQL interpreter
    C# Math.Round()的银行家算法
    使用Visual Studio分析dump
    Qt高级——QTestLib单元测试框架
    深度学习:Keras入门(一)之基础篇
    前端使用a标签启动本地.exe程序
  • 原文地址:https://www.cnblogs.com/-9-8/p/4377857.html
Copyright © 2011-2022 走看看