vim复制粘贴_打造一款高逼格的Vim神器
Vim 是一個上古神器,本篇文章主要持續(xù)總結(jié)使用 Vim 的過程中不得不了解的一些指令和注意事項,以及持續(xù)分享一個開發(fā)者不得不安裝的一些插件,而關(guān)于 Vim 的簡介,主題的選擇,以及為何使用 vim-plug 來管理插件等內(nèi)容,有興趣的同學(xué)下來可以自己了解和對比下。
本文導(dǎo)航? 安裝03%? 新手指南04%
? 移動光標(biāo)05%? 退出08%? 刪除08%? 修改10%? 撤銷11%? 復(fù)制粘貼剪切12%? 狀態(tài)13%? 查找13%? 替換15%? 折疊16%? 執(zhí)行外部命令17%? .vimrc18%? 基本配置23%
? 取消備份23%? 文件編碼23%? 顯示行號24%? 取消換行24%? 顯示光標(biāo)當(dāng)前位置25%? 設(shè)置縮進25%? 突出顯示當(dāng)前行26%? 查找27%? 左下角顯示當(dāng)前 vim 模式27%? 代碼折疊28%? 主題29%? 插件配置32%
? 樹形目錄32%? 代碼,引號,路徑補全46%? 語法高亮,檢查50%? 文件,代碼搜索56%? 加強版狀態(tài)欄59%? 代碼注釋63%? git69%? Markdown71%? Emmet74%? html 576%? css 377%? JavaScipt82%? React91%? Prettier93%? 總結(jié)97%
安裝
sudo apt-get install vim // Ubuntu新手指南
vimtutor // vim 教程移動光標(biāo)
# hjkl # 2w 向前移動兩個單詞 # 3e 向前移動到第 3 個單詞的末尾 # 0 移動到行首 # $ 當(dāng)前行的末尾 # gg 文件第一行 # G 文件最后一行 # 行號+G 指定行 # <ctrl>+o 跳轉(zhuǎn)回之前的位置 # <ctrl>+i 返回跳轉(zhuǎn)之前的位置退出
# <esc> 進入正常模式 # :q! 不保存退出 # :wq 保存后退出刪除
# x 刪除當(dāng)前字符 # dw 刪除至當(dāng)前單詞末尾 # de 刪除至當(dāng)前單詞末尾,包括當(dāng)前字符 # d$ 刪除至當(dāng)前行尾 # dd 刪除整行 # 2dd 刪除兩行修改
# i 插入文本 # A 當(dāng)前行末尾添加 # r 替換當(dāng)前字符 # o 打開新的一行并進入插入模式撤銷
# u 撤銷 # <ctrl>+r 取消撤銷復(fù)制粘貼剪切
# v 進入可視模式 # y 復(fù)制 # p 粘貼 # yy 復(fù)制當(dāng)前行 # dd 剪切當(dāng)前行文件
# :e! 強制刷新該文件 # <ctrl>+g 顯示當(dāng)前行以及文件信息查找
# / 正向查找(n:繼續(xù)查找,N:相反方向繼續(xù)查找) # ? 逆向查找 # % 查找配對的 {,[,( # :set ic 忽略大小寫 # :set noic 取消忽略大小寫 # :set hls 匹配項高亮顯示 # :set is 顯示部分匹配替換
# :s/old/new 替換該行第一個匹配串 # :s/old/new/g 替換全行的匹配串 # :%s/old/new/g 替換整個文件的匹配串折疊
# zc 折疊 # zC 折疊所有嵌套 # zo 展開折疊 # zO 展開所有折疊嵌套執(zhí)行外部命令
# :!shell 執(zhí)行外部命令字體
# <ctrl> - 縮小 # <ctrl> shift + 放大 # <ctrl> 0 還原分屏
$ Ctrl+W v // 左右 $ Ctrl+W s // 上下# 移動光標(biāo) $ Ctrl+W h/j/k/l // 左/上/下/右# 移動分屏 $ Ctrl+W H/J/K/L // 左/上/下/右# 修改屏幕尺寸 $ Ctrl+W =/+/-基本配置
.vimrc 是 Vim 的配置文件,需要我們自己創(chuàng)建
cd touch .vimrc取消備份
set nobackup set noswapfile文件編碼
set encoding=utf-8查找
set ic set hls set is顯示行號
set number顯示光標(biāo)當(dāng)前位置
set ruler設(shè)置縮進
set cindentset tabstop=2 set shiftwidth=2突出顯示當(dāng)前行
set cursorline左下角顯示當(dāng)前 vim 模式
set showmode代碼折疊
set nofoldenable主題
syntax enable set background=dark colorscheme solarized- https://github.com/altercation/vim-colors-solarized
- https://github.com/Anthony25/gnome-terminal-colors-solarized
插件配置
使用 vim-plug 管理插件
https://github.com/junegunn/vim-plug樹形目錄
Plug 'scrooloose/nerdtree' Plug 'jistr/vim-nerdtree-tabs' Plug 'Xuyuanp/nerdtree-git-plugin'autocmd vimenter * NERDTree map <C-n> :NERDTreeToggle<CR> let NERDTreeMinimalUI = 1 let NERDTreeShowHidden = 1let g:nerdtree_tabs_open_on_console_startup = 1 let g:nerdtree_tabs_focus_on_files = 1let g:NERDTreeIndicatorMapCustom = {"Modified" : "?","Staged" : "?","Untracked" : "?","Renamed" : "?","Unmerged" : "═","Deleted" : "?","Dirty" : "?","Clean" : "??",'Ignored' : '?',"Unknown" : "?"}# o 打開關(guān)閉文件或目錄 # e 以文件管理的方式打開選中的目錄 # t 在標(biāo)簽頁中打開 # T 在標(biāo)簽頁中打開,但光標(biāo)仍然留在 NERDTree # r 刷新光標(biāo)所在的目錄 # R 刷新當(dāng)前根路徑 # X 收起所有目錄 # p 小寫,跳轉(zhuǎn)到光標(biāo)所在的上一級路徑 # P 大寫,跳轉(zhuǎn)到當(dāng)前根路徑 # J 到第一個節(jié)點 # K 到最后一個節(jié)點 # I 顯示隱藏文件 # m 顯示文件操作菜單 # C 將根路徑設(shè)置為光標(biāo)所在的目錄 # u 設(shè)置上級目錄為根路徑 # ctrl + w + w 光標(biāo)自動在左右側(cè)窗口切換 # ctrl + w + r 移動當(dāng)前窗口的布局位置 # :tabc 關(guān)閉當(dāng)前的 tab # :tabo 關(guān)閉所有其他的 tab # :tabp 前一個 tab # :tabn 后一個 tab # gT 前一個 tab # gt 后一個 tab- https://github.com/scrooloose/nerdtree
- https://github.com/jistr/vim-nerdtree-tabs
- https://github.com/Xuyuanp/nerdtree-git-plugin
代碼,引號,路徑補全
Plug 'Valloric/YouCompleteMe' Plug 'Raimondi/delimitMate' Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }- https://github.com/Valloric/YouCompleteMe
- https://github.com/Raimondi/delimitMate
- https://github.com/Shougo/deoplete.nvim
語法高亮,檢查
Plug 'sheerun/vim-polyglot' Plug 'w0rp/ale'let g:ale_linters = {'javascript': ['eslint'],'css': ['stylelint'], } let g:ale_fixers = {'javascript': ['eslint'],'css': ['stylelint'], } let g:ale_fix_on_save = 1let 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)- https://github.com/w0rp/ale
- https://github.com/sheerun/vim-polyglot
文件,代碼搜索,打開最近打開的文件
Plug 'rking/ag.vim' Plug 'kien/ctrlp.vim' Plug 'vim-scripts/mru.vim'let g:ag_highlight=1 let g:ag_working_path_mode="r"# :Ag! contentset wildignore+=*.zip,*.exelet g:ctrlp_map = '<c-p>' let g:ctrlp_custom_ignore = {'dir': 'v[/](node_modules|DS_Store|dist|build|coverage)|(.(git|hg|svn)$)','file': 'v.(exe|so|dll)$',}# <c-r>: 切換匹配模式 # <c-t> or <c-v>, <c-x>:在新的 tab 中打開let MRU_Exclude_Files = '^/tmp/.*|^/var/tmp/.*' let MRU_Window_Height = 15# :MRU- https://github.com/kien/ctrlp.vim
- https://github.com/ggreer/the_silver_searcher
- https://github.com/rking/ag.vim
- https://github.com/vim-scripts/mru.vim
加強版狀態(tài)欄
Plug 'itchyny/lightline.vim'let g:lightline = {'colorscheme': 'powerline','active': {'left': [ [ 'mode', 'paste' ],[ 'gitbranch', 'readonly', 'filename', 'modified', 'helloworld' ] ],'right': [ [ 'lineinfo' ],[ 'percent' ],[ 'fileformat', 'fileencoding', 'filetype' ] ]},'component': {'helloworld': 'Hello, 楓上霧棋!'},'component_function': {'gitbranch': 'fugitive#head'},}- https://github.com/itchyny/lightline.vim
代碼注釋
Plug 'scrooloose/nerdcommenter'# <leader>c<space> 注釋/取消注釋 # <leader>cc // 注釋 # <leader>cm 只用一組符號注釋 # <leader>cA 在行尾添加注釋 # <leader>c$ /* 注釋 */ # <leader>cs /* 塊注釋 */ # <leader>cy 注釋并復(fù)制 # <leader>ca 切換 // 和 /* */ # <leader>cu 取消注釋let g:NERDSpaceDelims = 1 let g:NERDDefaultAlign = 'left' let g:NERDCustomDelimiters = {'javascript': { 'left': '//', 'leftAlt': '/**', 'rightAlt': '*/' },'less': { 'left': '/**', 'right': '*/' }}let g:NERDAltDelims_javascript = 1 let g:NERDDefaultNesting = 0- https://github.com/scrooloose/nerdcommenter
git
Plug 'airblade/vim-gitgutter' Plug 'tpope/vim-fugitive'- https://github.com/airblade/vim-gitgutter
- https://github.com/tpope/vim-fugitive
Markdown
Plug 'suan/vim-instant-markdown' Plug 'junegunn/goyo.vim' Plug 'amix/vim-zenroom2'let g:instant_markdown_slow = 1 let g:instant_markdown_autostart = 0 # :InstantMarkdownPreview# :Goyo- https://github.com/suan/vim-instant-markdown
- https://github.com/junegunn/goyo.vim
- https://github.com/amix/vim-zenroom2
Emmet
Plug 'mattn/emmet-vim'let g:user_emmet_leader_key='<C-Z>' let g:user_emmet_settings = {'javascript.jsx' : {'extends' : 'jsx',},}- https://github.com/mattn/emmet-vim
html 5
Plug 'othree/html5.vim'- https://github.com/othree/html5.vim
css 3
Plug 'hail2u/vim-css3-syntax' Plug 'ap/vim-css-color'augroup VimCSS3Syntaxautocmd!autocmd FileType css setlocal iskeyword+=- augroup END- https://github.com/hail2u/vim-css3-syntax
- https://github.com/ap/vim-css-color
JavaScipt
Plug 'pangloss/vim-javascript'let g:javascript_plugin_jsdoc = 1 let g:javascript_plugin_ngdoc = 1 let g:javascript_plugin_flow = 1 set foldmethod=syntax let g:javascript_conceal_function = "?" let g:javascript_conceal_null = "?" let g:javascript_conceal_this = "@" let g:javascript_conceal_return = "?" let g:javascript_conceal_undefined = "?" let g:javascript_conceal_NaN = "?" let g:javascript_conceal_prototype = "?" let g:javascript_conceal_static = "?" let g:javascript_conceal_super = "Ω" let g:javascript_conceal_arrow_function = "?" let g:javascript_conceal_noarg_arrow_function = "?" let g:javascript_conceal_underscore_arrow_function = "?" set conceallevel=1- https://github.com/pangloss/vim-javascript
js-beautify
Plug 'maksimr/vim-jsbeautify'autocmd FileType html noremap <buffer> <c-f> :call HtmlBeautify()<cr>- http://github.com/maksimr/vim-jsbeautify
React
Plug 'mxw/vim-jsx'let g:jsx_ext_required = 0- https://github.com/mxw/vim-jsx
Prettier
Plug 'prettier/vim-prettier', {'do': 'yarn install','for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql', 'markdown'] }let g:prettier#config#bracket_spacing = 'true' let g:prettier#config#jsx_bracket_same_line = 'false' let g:prettier#config#trailing_comma = 'es5' let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*md PrettierAsync# :Prettier- https://github.com/prettier/vim-prettier
自動規(guī)范化中文排版
Plug 'hotoo/pangu.vim'# :Pangu- https://github.com/hotoo/pangu.vim
總結(jié)
最后,提供 to-vim-tmux-zsh 倉庫可供參考,其中,除包含 vim 的配置,還有 tmux 和 zsh 的分享
to-vim-tmux-zsh倉庫:https://github.com/FengShangWuQi/to-vim-tmux-zsh來源:如何讓 vim 成為我們的神器_楓上霧棋的日志
總結(jié)
以上是生活随笔為你收集整理的vim复制粘贴_打造一款高逼格的Vim神器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java项目log4j_java项目测试
- 下一篇: git两个账号切换_多个git账号之间的