zoukankan      html  css  js  c++  java
  • vim (四) 使用技巧

    1. 复制粘贴

    普通模式下,可使用 yaw 命令复制当前光标所在单词

    2. 查找

    2.1 普通查找

    1. 最快的方式是让光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + *  ,即可快速选中该单词,并且可以通过 n  或  N 进行上一个或下一个的匹配。

    2. 让光标停留在单词的第一个字母上, 然后输入yw拷贝该单词, 然后输入 / (Ctrl + R) 0 (即 /”0),回车, 就查找到了第一个匹配的单词, 并且可以通过 n  或  N 进行上一个或下一个的匹配。
      解释一下:
      Ctrl + r 是指使用寄存器 , 你会发现先输入/ ,然后输入 Ctrl + r , 会立刻变为 “ , 即寄存器的前缀, 然后 ”0 就可以理解了吧?
      合起来就是 /“0, 就是查找刚才复制的那个单词.

    3. 还有一种方式, 和第二种方式差不多,不过是将单词拷贝到系统剪贴板, 然后再从系统剪贴板拿出来。 即选中需要查找的单词, 然后输入 “+y, 然后输入/(Shfit + Ctrl + v), 就查找到了第一个匹配的单词, 并且可以通过 n  或  N 进行上一个或下一个的匹配。

    我们打开别的文件,发现也被高亮了,怎么关闭高亮?
    命令模式下,输入:nohlsearch 也可以:set nohlsearch; 当然,可以简写,noh或者set noh

    2.2 ag查找

    首先安装ag搜索工具, 输入如下命令:

    sudo  apt-get   install    silversearcher-ag

    接着在~/.vimrc中添加以下内容:

    " Set mapleader
    let mapleader = ","
    " for easy using sliver search
    nmap <leader>f :norm yiw<CR>:Ag! -t -Q "<C-R>""
    nmap <leader>r :norm yiw<CR>:Ag! -t "<C-R>""
    " Locate and return character "above" current cursor position.
    function! LookUpwards()
        let column_num = virtcol('.')
        let target_pattern = '\%' . column_num . 'v.'
        let target_line_num = search(target_pattern . '*S', 'bnW')
        if !target_line_num
            return ""
        else
            return matchstr(getline(target_line_num), target_pattern)
        endif
    endfunction
    imap <silent> <C-Y> <C-R><C-R>=LookUpwards()<CR>
    

    3. ctag 错误

    在函数名处按快捷键“ctrl+]”,报“vim E257: cstag: tag not found”错误。
    原因以及解决:
    在vimrc中设置了两处tags.
    例如,我有两个文件夹/home/test1和/home/test2 ,但是只有/home/test1文件夹下有tags文件。
    在vimrc中,找到tags的设定,修改即可
    vim中ctags的设置

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " CTags的设定
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    let Tlist_Sort_Type = "name"    " 按照名称排序
    let Tlist_Use_Left_Window = 1  " 在右侧显示窗口
    let Tlist_Compart_Format = 1    " 压缩方式
    let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer
    let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags
    let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树
    autocmd FileType java set tags+=D:	oolsjava	ags
    ""autocmd FileType h,cpp,cc,c set tags+=D:	oolscpp	ags
    let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的
    "设置tags
    set tags=/home/lin/kernel/linux-4.19/net/tags
    set autochdir
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "其他东东
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "默认打开Taglist
    let Tlist_Auto_Open=1
    """"""""""""""""""""""""""""""
    " Tag list (ctags)
    """"""""""""""""""""""""""""""""
    let Tlist_Ctags_Cmd = '/usr/bin/ctags'
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
    let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vi
    let Tlist_Use_Left_Window = 1
    "let Tlist_Use_Right_Window = 0
    " minibufexpl插件的一般设置
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1
    let g:miniBufExplModSelTarget = 1
    map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
    let Tlist_Show_One_File=1
    let Tlist_Exit_OnlyWindow=1
    """"""""""""""""""""""""""""""""""""""'
    """ctags  auto update""""""""""
    """""""""""""""""""""""""""""""""""""""
    function! UpdateCtags()
        let curdir=getcwd()
        while !filereadable("./tags")
            cd ..
            if getcwd() == "/"
                break
            endif
        endwhile
        if filewritable("./tags")
            !ctags -R --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q
            TlistUpdate
        endif
        execute ":cd " . curdir
    endfunction
    ""nmap <F10> :call UpdateCtags()<CR>
    ""autocmd BufWritePost *.c,*.h,*.cpp call UpdateCtags()
    """"""""""""""""""""""""""""""""""""""""""
    ""set onmicppcompete
    """"""""""""""""""""""""""""""""""""""""""
    

    4. vim 改变字体

    control+shift+"+"增加显示字体
    cotrol+“-” 减小字体

    欢迎评论交流
  • 相关阅读:
    September 29th 2017 Week 39th Friday
    September 28th 2017 Week 39th Thursday
    September 27th 2017 Week 39th Wednesday
    September 26th 2017 Week 39th Tuesday
    September 25th 2017 Week 39th Monday
    September 24th 2017 Week 39th Sunday
    angular2 学习笔记 ( Form 表单 )
    angular2 学习笔记 ( Component 组件)
    angular2 学习笔记 ( Http 请求)
    angular2 学习笔记 ( Router 路由 )
  • 原文地址:https://www.cnblogs.com/linengier/p/12383117.html
Copyright © 2011-2022 走看看