• vim自定义配置


    vim-plug installation

    curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

    if the command above can not work, you can just copy plug.vim into .vim/autoload

    cd ~
    git clone https://github.com/junegunn/vim-plug
    mkdir .vim/autoload
    cp vim-plug/plug.vim ~/.vim/autoload

    vimrc example:

    let mapleader=" "
    syntax on
    filetype on
    
    set nocompatible
    "set backspace=2 " when using MSYS2, it should add this command into .vimrc file

    set mouse=a set scrolloff
    =5 set encoding=utf-8 colorscheme desert set nu set nocursorline set wrap set showcmd set wildmenu map S :w<CR> map s <nop> map Q :q<CR> map R :source ~/.vimrc<CR> noremap J 5j noremap K 5k "<operation> <motion>" set hlsearch exec "nohl" set incsearch set ignorecase set smartcase

    set smartindent
    set cindent

    set autoread
    set history=1000
    set tabstop=4
    set expandtab
    set sw=4 noremap
    <LEADER>n :nohl<CR> nnoremap sl :set splitright<CR>:vsplit<CR> nnoremap sh :set nosplitright<CR>:vs<CR> nnoremap sj :set splitbelow<CR>:split<CR> nnoremap sk :set nosplitbelow<CR>:split<CR> nnoremap <LEADER>h <C-w>h nnoremap <LEADER>j <C-w>j nnoremap <LEADER>k <C-w>k nnoremap <LEADER>l <C-w>l

      noremap <leader>1 1gt
      noremap <leader>2 2gt
      noremap <leader>3 3gt
      noremap <leader>4 4gt
      noremap <leader>5 5gt
      noremap <leader>6 6gt
      noremap <leader>7 7gt
      noremap <leader>8 8gt
      noremap <leader>9 9gt

    "resize the window
    nnoremap <up> :res +5<CR>
    nnoremap <down> :res -5<CR>
    nnoremap <left> :vertical resize+5<CR>
    nnoremap <right> :vertical resize-5<CR>
    
    "create the new file, after that name this file through command ':w<filename>'
    nnoremap tn :tabnew 
    nnoremap tr :w 
    nnoremap th :tabp<CR>
    nnoremap tl :tabn<CR>
    nnoremap of :edit
    
    "Comment:  "+ is system register
    vnoremap P "+p
    
    call plug#begin('~/.vim/autoload')
    
    Plug 'junegunn/fzf' Plug 'Shougo/defx.nvim'
    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
    "Plug 'vim-scripts/autoload_cscope.vim'
    Plug 'vim-scripts/taglist.vim'

    " python
    Plug 'vim-scripts/indentpython.vim'
    call plug#end()


    " ==============
    " === cscope ===
    " ==============
    " 把autoload_cscope.vim放到~/.vim/plugin/目录中,然后修改autoload_cscope.vim
    "  "au BufEnter *.[chly]  call <SID>Cycle_csdb() | call <SID>Cycle_macros_menus()
    " "au BufEnter *.cc      call <SID>Cycle_csdb() | call <SID>Cycle_macros_menus()
    "  "au BufUnload *.[chly] call <SID>Unload_csdb() | call <SID>Cycle_macros_menus()
    "  "au BufUnload *.cc     call <SID>Unload_csdb() | call <SID>Cycle_macros_menus()
    "  au BufEnter * call <SID>Cycle_csdb() | call <SID>Cycle_macros_menus()
    "  au BufUnload * call <SID>Unload_csdb() | call <SID>Cycle_macros_menus()
    " cscope -Rbkq × 生成3个文件,这样就能自动load cscope.out了

    set cspc=6 "cscope的查找结果在格式上最多显示6层目录cscope
    let g:autocscope_menus=0 "关闭autoscope插件的快捷键映射,防止和我们定义的快捷键冲突

    nmap fc :cs find c <C-R>=expand("<cword>")<CR><CR>   " function call 查找光标下函数被调用的地方
    nmap fd :cs find d <C-R>=expand("<cword>")<CR><CR>   " 查找当前函数所调用的函数
    nmap fg :cs find g <C-R>=expand("<cword>")<CR><CR>   " 查找函数,宏,枚举等定义的位置
    nmap ft :cs find g <C-R>=expand("<cword>")<CR><CR>   " 查找指定的字符串出现的地方


    " ===
    " === NERDTree
    " ===
    map tt :NERDTreeToggle<CR>
    let NERDTreeMapOpenExpl = ""
    let NERDTreeMapUpdir = ""
    let NERDTreeMapUpdirKeepOpen = "l"
    let NERDTreeMapOpenSplit = ""
    let NERDTreeOpenVSplit = ""
    let NERDTreeMapActivateNode = "i"
    let NERDTreeMapOpenInTab = "o"
    let NERDTreeMapPreview = ""
    let NERDTreeMapCloseDir = "n"
    let NERDTreeMapChangeRoot = "y"

    " ===
    " === Python-syntax
    " ===
    let g:python_highlight_all = 1
    " let g:python_slow_sync = 0

    " ===
    " === ctags
    " ===
    " in the source directory, execute "ctags -R *"
    set tags=tags;
    set autochdir
    nnoremap ff <c-]> "function forward
    nnoremap fb <c-t> "function backward

    " ===============
    " === taglist ===
    " ===============
    let Tlist_Use_Right_Window = 1 "taglist窗口在右侧
    let Tlist_Ctags_Cmd = '/usr/bin/ctags' "将taglist和ctags关联起来
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,仅显示一个
    let Tlist_Exit_OnlyWindow = 1 "taglist为最后一个窗口时,退出vim
    "let Tlist_WinHeight = 100
    "let Tlist_WinWidth = 40
    nnoremap <F8> :TlistToggle<CR> "设置taglist打开关闭的shortcut为F8
    nnoremap <F5> :!ctags -R *<CR> "在源代码的根目录下执行更新
     

     vim usage

    查看vim版本

    1. 在shell下键入 vim --version

    2. 在打开的vim编辑器内键入 :version

    支持系统剪贴板

    1. vim --version | grep clipboard   来查看xtem_clipboard前面是+还是-,如果是+,说明可用,如果是-,则不可用

    2. 如果不可用,sudo apt-get install vim vim-scripts vim-gtk vim-gnome 来安装,安装完成后再次查看,应该能看到xterm_clipboard前是+

    3. 在vim中使用shift+v来选择文本,"+y 来复制, 这样就复制到系统剪贴板上了,然后再在text或者网页端使用ctrl+v来粘贴了

     同时打开多个文本文件, 而这些文本文件分别在不同的tab里, 可以使用tabn或tabp来switch

    vim -p <file1> <file2> <file3> ...

    --------------------------------------------- Study needs record, record needs review ---------------------------------------------
  • 相关阅读:
    svn使用总结
    捕获JS 错误日志
    致敬 54岁的刘德华
    Mac 下 命令收藏
    坑人的七牛CDN
    【No.1】监控Linux性能25个命令行工具
    PAC 自动代理
    jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件
    Squid 操作实践
    ntpdate[16603]: the NTP socket is in use
  • 原文地址:https://www.cnblogs.com/georgemxx/p/12293593.html
Copyright © 2020-2023  润新知