跳转至

Vim高级技巧

vsvim

# 文件间跳转
nmap <C-O> :vsc View.NavigateBackward<CR>
nmap <C-I> :vsc View.NavigateForward<CR>
# 跳转到定义
nmap <C-]> :vsc Edit.GoToDefinition<CR>
# 键盘映射
imap kj <Esc>
vmap kj <Esc>

neovim

配置文件名为init.vim,路径在C:\users\xxx\AppData\Local\nvim中。

vim-plug配置文件名为plug.vim,路径在C:\users\xxx\AppData\Local\nvim\autoload中。

" 插件
call plug#begin()
        Plug 'preservim/nerdtree'                   "目录树
        Plug 'vim-airline/vim-airline'              "主题相关
        Plug 'vim-airline/vim-airline-themes'       "主题相关
        Plug 'preservim/nerdcommenter'              "批量注释
        Plug 'mhinz/vim-startify'                   "最近使用文件
        Plug 'tpope/vim-fugitive'                   "git命令相关
        Plug 'tpope/vim-surround'                   "单词周围符号对
        "Plug 'scrooloose/syntastic'                "语法检查
        Plug 'rust-lang/rust.vim'                   "rust支持
        Plug 'majutsushi/tagbar'                    "标签栏支持
        "Plug 'w0rp/ale'                             "异步语法检查
        Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
        Plug 'jiangmiao/auto-pairs'                 
        " Plug 'Yggdroot/LeaderF', { 'do': './install.sh' } "模糊查找
        Plug 'ludovicchabant/vim-gutentags'         "tag相关
        Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}
call plug#end()

" 前缀键<leader>
let g:mapleader=","
" 编码
set encoding=utf-8
set termencoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
" 行号
set number
set relativenumber
" 缩进
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
" 语法高亮
syntax on
set hlsearch 
" 取消高亮
noremap <leader><leader> :nohlsearch<CR>
" 文件类型识别
filetype on
filetype plugin on
filetype plugin indent on
" 搜索
set ignorecase
set smartcase
noremap n nzz       " 切换搜索结果,每次在正中间
noremap N Nzz
" 光标恢复
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" ESC映射
inoremap <C-j> <Esc>
vnoremap <C-j> <Esc>
" 目录树
map <C-n> :NERDTreeToggle<CR>
" 注释
let g:NERDCreateDefaultMappings = 1
let g:NERDSpaceDelims = 1
let g:NERDCompactSexyComs = 1
let g:NERDDefaultAlign = 'left'
let g:NERDAltDelims_java = 1
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }
let g:NERDCommentEmptyLines = 1
let g:NERDTrimTrailingWhitespace = 1
let g:NERDToggleCheckAllLines = 1
map <C-\> <Plug>NERDCommenterToggle
" 主题相关
" let g:airline_theme='angr'
let g:airline_theme='deus'
let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#formatter = 'unique_tail'
nmap <C-h> <Plug>AirlineSelectPrevTab
nmap <C-l> <Plug>AirlineSelectNextTab

" 标签栏
nmap <F8> :TagbarToggle<CR>
" 异步语法检查
" let g:airline#extensions#ale#enabled = 1
" 模糊查找
let g:Lf_ShortcutF = '<c-p>'

" gutentags搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归 "
let g:gutentags_project_root = ['.root', '.svn', '.git', '.project']

" 所生成的数据文件的名称 "
let g:gutentags_ctags_tagfile = '.tags'

" 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录 "
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
" 检测 ~/.cache/tags 不存在就新建 "
if !isdirectory(s:vim_tags)
   silent! call mkdir(s:vim_tags, 'p')
endif

" 配置 ctags 的参数 "
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+pxI']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']

" 自动补全
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
set clipboard=unnamedplus

vim插件命令

Command Description
PlugInstall [name ...] [#threads] Install plugins
PlugUpdate [name ...] [#threads] Install or update plugins
PlugClean[!] Remove unlisted plugins (bang version will clean without prompt)
PlugUpgrade Upgrade vim-plug itself
PlugStatus Check the status of plugins
PlugDiff Examine changes from the previous update and the pending changes
PlugSnapshot[!] [output path] Generate script for restoring the current snapshot of the plugins

vscode

# 安装neovim插件,使用本地neovim的配置文件

本文总阅读量
回到页面顶部