Vim 是一個上古神器,剛剛接觸的同學可能很難駕馭,本篇文章主要帶領(lǐng)大家快速入門,并持續(xù)分享當前流行的一些 vim-plugin,有興趣的同學還可以參考 to-vim-tmux-zsh 倉庫繼續(xù)研究 Tmux 和 Zsh。
Vim 的優(yōu)勢
新手指南
$ vimtutor // vim 教程
Vim 模式
移動光標
退出
刪除
修改
撤銷
復制粘貼剪切
文件
查找
替換
基本配置
創(chuàng)建 Vim 的配置文件 .vimrc
touch ~/.vimrc
文件編碼
set enc=utf-8
不和 vi 兼容
set noswapfile
備份和撤銷文件
set nobackup set noswapfile if has('persistent_undo') set undofile set undodir=~/.vim/undodir if !isdirectory(undodir) call mkdir(undodir, 'p', 0700) endif endif
中文
set fileencodings=ucs-bom,utf-8,gb18030,latin1
鼠標支持
if has('mouse') if has('gui_running') || (term =~ 'xterm' !has('mac')) set mouse=a else set mouse=nvi endif endif set clipboard=unnamed
設(shè)置文本菜單
if has('gui_running') let do_syntax_sel_menu = 1 let do_no_lazyload_menus = 1 endif if !has('gui_running') if has('wildmenu') set wildmenu set cpoptions-= set wildcharm=C-Z> nnoremap F10> :emenu C-Z> inoremap F10> C-O>:emenu C-Z> endif endif
查找
set ignorecase set smartcase set hlsearch set incsearch nnoremap silent> F2> :nohlsearchCR> inoremap silent> F2> C-O>:nohlsearchCR>
顯示行號
set number
設(shè)置縮進
set shiftwidth=2 set tabstop=2
突出顯示當前行
set cursorline
啟動 vim 時關(guān)閉折疊代碼
set nofoldenable
主題
syntax enable colorscheme one set background=dark
背景透明
hi Normal ctermfg=252 ctermbg=none
插件配置
使用 vim-plug 管理插件
樹形目錄
Plug 'scrooloose/nerdtree' " https://github.com/preservim/nerdtree Plug 'jistr/vim-nerdtree-tabs' " https://github.com/jistr/vim-nerdtree-tabs Plug 'Xuyuanp/nerdtree-git-plugin' " https://github.com/Xuyuanp/nerdtree-git-plugin Plug 'ryanoasis/vim-devicons' " https://github.com/ryanoasis/vim-devicons Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " https://github.com/tiagofumo/vim-nerdtree-syntax-highlight Plug 'tpope/vim-eunuch' " https://github.com/tpope/vim-eunuch map C-n> :NERDTreeToggleCR> let NERDTreeMinimalUI = 1 let NERDTreeShowHidden = 1 let g:nerdtree_tabs_open_on_console_startup = 1 nnoremap F5> :UndotreeTogglecr> " i 在新的水平分割的窗口中打開 " s 在新的豎直分割的窗口中打開 " t 在標簽頁中打開 " go 預覽文件 " r 刷新光標所在的目錄 " R 刷新當前根路徑 " I 顯示隱藏文件 " m 顯示文件操作菜單 " C 將根路徑設(shè)置為光標所在的目錄 " u 設(shè)置上級目錄為根路徑 " gT 前一個 tab " gt 后一個 tab " C-W> 加方向鍵(h、j、k、l、Left> 等)可以在窗口之間跳轉(zhuǎn) " C-W> + w 跳轉(zhuǎn)到下一個窗口 " C-W> + s 和 :split 作用相同,把當前窗口橫向一分為二 " C-W> + v 和 :vsplit 作用相同,把當前窗口縱向一分為二 " C-W> + o 或 :only 只保留當前窗口,關(guān)閉其他所有窗口
標簽
Plug 'majutsushi/tagbar' " https://github.com/majutsushi/tagbar nnoremap F9> :TagbarToggleCR> inoremap F9> C-O>:TagbarToggleCR>
自動補全
Plug 'Valloric/YouCompleteMe' " https://github.com/ycm-core/YouCompleteMe Plug 'Raimondi/delimitMate' " https://github.com/Raimondi/delimitMate nnoremap Leader>fi :YcmCompleter FixItCR> nnoremap Leader>gd :YcmCompleter GoToDefinitionCR>
語法高亮,檢查
Plug 'sheerun/vim-polyglot' " https://github.com/sheerun/vim-polyglot Plug 'w0rp/ale' " https://github.com/w0rp/ale let g:ale_fix_on_save = 1 let g:ale_sign_column_always = 1 let g:ale_sign_error = '●' let g:ale_sign_warning = '▶' nmap silent> C-k> Plug>(ale_previous_wrap) nmap silent> C-j> Plug>(ale_next_wrap)
全局搜索,快速打開文件
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " https://github.com/junegunn/fzf Plug 'junegunn/fzf.vim' " https://github.com/junegunn/fzf.vim Plug 'ctrlpvim/ctrlp.vim' " https://github.com/ctrlpvim/ctrlp.vim let g:ctrlp_user_command = ['.git', 'cd %s git ls-files -co --exclude-standard'] let g:ctrlp_regexp = 1 " c-r>: 切換匹配模式 " c-t>:在新的 tab 中打開 " :Rg
狀態(tài)條
Plug 'vim-airline/vim-airline' " https://github.com/vim-airline/vim-airline Plug 'vim-airline/vim-airline-themes' " https://github.com/vim-airline/vim-airline-themes let g:airline_theme='onedark' let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#formatter = 'unique_tail' let g:airline#extensions#ale#enabled = 1 let g:airline#extensions#tabline#buffer_nr_show = 1 let g:airline#extensions#nerdtree_statusline = 0 let g:airline_section_c = ''
注釋
Plug 'scrooloose/nerdcommenter' " https://github.com/preservim/nerdcommenter let g:NERDSpaceDelims = 1 let g:NERDDefaultAlign = 'left' " leader>cspace> 注釋/取消注釋 " leader>ca 切換 // 和 /* */ " leader>cs /* 塊注釋 */ " leader>cm 只用一組符號注釋 " leader>cA 在行尾添加注釋
git
Plug 'airblade/vim-gitgutter' " https://github.com/airblade/vim-gitgutter Plug 'tpope/vim-fugitive' " https://github.com/tpope/vim-fugitive Plug 'tpope/vim-rhubarb' " https://github.com/tpope/vim-rhubarb set updatetime=100 let g:gitgutter_max_signs = -1 " jump to next hunk: ]c " jump to previous hunk: [c " stage the hunk: Leader>hs " undo the hunk: Leader>hu " preview the hunk: Leader>hp " :G " :Gvdiffsplit " :GBrowse " " s: 加到暫存區(qū)中 " u: 重置加入暫存區(qū)的修改 " =: 切換 diff 顯示 " cc: 提交當前暫存區(qū)中的文件
Markdown
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app yarn install' } " https://github.com/iamcco/markdown-preview.nvim " :MarkdownPreview " :MarkdownPreviewStop
Emmet
Plug 'mattn/emmet-vim' " https://github.com/mattn/emmet-vim let g:user_emmet_leader_key='C-Z>' " C-Z>,
Prettier
Plug 'prettier/vim-prettier', { 'do': 'npm install' } " https://github.com/prettier/vim-prettier autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync " :PrettierAsync
Wakatime
Plug 'wakatime/vim-wakatime' " https://github.com/wakatime/vim-wakatime "
Whitespace
Plug 'ntpeters/vim-better-whitespace' " https://github.com/ntpeters/vim-better-whitespace let g:better_whitespace_enabled=1 " :StripWhitespace
總結(jié)
最后,呈上 to-vim-tmux-zsh 倉庫可供參考,顧名思義,除了 vim,還有 tmux 和 zsh 的相關(guān)內(nèi)容。
到此這篇關(guān)于如何讓 vim 成為我們的神器(小結(jié))的文章就介紹到這了,更多相關(guān)vim 使用入門 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標簽:莆田 遵義 雙鴨山 錫林郭勒盟 丹東 鄂爾多斯 哈爾濱 襄陽
巨人網(wǎng)絡(luò)通訊聲明:本文標題《如何讓 vim 成為我們的神器(小結(jié))》,本文關(guān)鍵詞 如何,讓,vim,成為,我們,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。