摘要:截圖安裝你需要一個有支持的版本請使用來檢查依賴平臺依賴平臺的源自帶的版本較舊,推薦自行安裝依賴平臺下載文件到用戶主目錄打開打開它將會自動安裝插件請耐心等待它完成或者你可以使用下面的命令來自行安裝享受你的并個性化它
截圖 安裝
(你需要一個有Python支持的Vim版本. 請使用 vim --version | grep +python 來檢查)
依賴(Debian/Ubuntu 平臺)
`sudo apt-get install python vim exuberant-ctags git` `sudo pip install dbgp vim-debug pep8 flake8 pyflakes isort`
依賴(RedHat/CentOS 平臺)
CentOS 6.7的yum源自帶的Python版本較舊,推薦自行安裝Python2.7. `sudo yum install python vim ctags git` `sudo pip install dbgp vim-debug pep8 flake8 pyflakes isort`
依賴(Mac OS 平臺)
`brew install python vim git` `wget http://tenet.dl.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz && tar -zxvf ctags-5.8.tar.gz && cd ctags-5.8 && ./configure && make && sudo make install` `sudo pip install dbgp vim-debug pep8 flake8 pyflakes isort`
下載vimrc 文件到用戶主目錄
`wget https://raw.githubusercontent.com/tao12345666333/vim/master/vimrc -O $HOME/.vimrc`
打開 Vim
打開Vim, 它將會自動安裝插件. 請耐心等待它完成. 或者你可以使用下面的命令來自行安裝. `vim -E -u $HOME/.vimrc +qall`
享受你的Vim并個性化它吧!
支持特性 插件管理(Vundle)在這份配置中,使用了Vundle作為插件管理器. Vundle會自動接管 .vim 文件夾,所有配置好的插件將默認下載至~/.vim/bundle/, 在使用之前請確保.vim文件夾干凈. Vundle的插件安裝需要觸發 git clone 操作,搜索需要 curl 支持.
配置(截取了部分)" let Vundle manage Vundle Bundle "gmarik/vundle" " ============================================================================ " Active plugins " You can disable or add new ones here: " Plugins from github repos: " Python and PHP Debugger Bundle "fisadev/vim-debug.vim" " Better file browser Bundle "scrooloose/nerdtree" " Code commenter Bundle "scrooloose/nerdcommenter" " Class/module browser Bundle "majutsushi/tagbar" " Code and files fuzzy finder Bundle "kien/ctrlp.vim" " Extension to ctrlp, for fuzzy command finder Bundle "fisadev/vim-ctrlp-cmdpalette" " Zen coding Bundle "mattn/emmet-vim" " Git integration Bundle "motemen/git-vim" " Tab list panel Bundle "kien/tabman.vim"支持操作
命令 | 解釋 |
---|---|
:PluginList | 列出所有Plugin |
:PluginInstall(!) | 安裝/更新Plugin |
:PluginSearch(!) foo | 搜索foo相關的Plugin |
:PluginClean(!) | 清理未使用的Plugin |
:PluginUpdate | 更新插件 |
在這份配置中, 使用了NERDTree查看文件列表. 你可以在NERDTree中瀏覽和打開你文件系統中的目錄或文件. 還可以進行文件隱藏和過濾, 設置添加書簽等. 在NERDTree窗口輸入?可獲得操作指南. 這份配置中默認過濾掉了.pyc, .git, .hg, .svn等文件或文件夾的顯示.
配置" auto open or close NERDTree autocmd vimenter * if !argc() | NERDTree | endif autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " NERDTree ----------------------------- " toggle nerdtree display map支持操作:NERDTreeToggle " open nerdtree with the current file selected nmap ,t :NERDTreeFind " don;t show these file types let NERDTreeIgnore = [".pyc$", ".pyo$"]
快捷鍵 | 解釋 |
---|---|
F3 | 打開/關閉NERDTree |
,t | 打開NERDTree并選中當前文件 |
在這份配置中, 使用Syntastic插件進行語法靜態檢查. 包括但不限于C/C++/Go/Python/Haskell/Ruby/JavaScript等. 在本配置中對JavaScript的靜態檢查使用eslint,可以支持ES6及JSX等, 細節可以參考JSLint, JSHint和ESLint的對比及Vim配置, 想要切換檢查工具只要修改對應位置即可.
配置" Syntastic ------------------------------ " show list of errors and warnings on the current file nmap特性e :Errors " turn to next or previous errors, after open errors list nmap n :lnext nmap p :lprevious " check also when just opened the file let g:syntastic_check_on_open = 1 " syntastic checker for javascript. " eslint is the only tool support JSX. " If you don"t need write JSX, you can use jshint. " And eslint is slow, but not a hindrance " let g:syntastic_javascript_checkers = ["jshint"] let g:syntastic_javascript_checkers = ["eslint"] " don"t put icons on the sign column (it hides the vcs status icons of signify) let g:syntastic_enable_signs = 0 " custom icons (enable them if you use a patched font, and enable the previous " setting) let g:syntastic_error_symbol = "?" let g:syntastic_warning_symbol = "?" let g:syntastic_style_error_symbol = "?" let g:syntastic_style_warning_symbol = "?"
保存時自動進行語法靜態檢查,方便的錯誤提示及靈活的可擴展性.
支持操作快捷鍵 | 解釋 |
---|---|
e | 打開錯誤列表 |
n | 移動到下一個錯誤位置 |
p | 移動到上一個錯誤位置 |
在這份配置中, 使用vim-fugitive和vim-signify做Git方面的支持. 可以進行常用的git操作及優雅的狀態提示等(目前支持git和hg).
配置" Signify ------------------------------ " this first setting decides in which order try to guess your current vcs " UPDATE it to reflect your preferences, it will speed up opening files let g:signify_vcs_list = [ "git", "hg" ] " mappings to jump to changed blocks nmap支持操作sn (signify-next-hunk) nmap sp (signify-prev-hunk) " nicer colors highlight DiffAdd cterm=bold ctermbg=none ctermfg=119 highlight DiffDelete cterm=bold ctermbg=none ctermfg=167 highlight DiffChange cterm=bold ctermbg=none ctermfg=227 highlight SignifySignAdd cterm=bold ctermbg=237 ctermfg=119 highlight SignifySignDelete cterm=bold ctermbg=237 ctermfg=167 highlight SignifySignChange cterm=bold ctermbg=237 ctermfg=227
快捷鍵 | 解釋 |
---|---|
:Git [args] | 類似執行git命令一樣 |
:Gstatus | 類似git status.在列表中使用-添加/移除文件 |
:Gcommit [args] | 類似 git commit |
:Gmerge [args] | 類似 git merge |
:Gpull [args] | 類似 git pull |
:Gpush [args] | 類似 git push |
:Gvdiff [revision] | 類似 git push 但是會切分窗口 |
更多詳細的操作可以使用 :help fugitive
Tag支持在這份配置中,使用了Tagbar做Tag支持,可以顯示當前文件中定義的類/變量等.
配置" Tagbar ----------------------------- " toggle tagbar display map支持操作:TagbarToggle " autofocus on tagbar open let g:tagbar_autofocus = 1
快捷鍵 | 解釋 |
---|---|
F4 | 打開Tag列表 |
在這份配置中, 使用了Neocomplcache作為主要的自動補全插件.
配置" NeoComplCache ------------------------------ " most of them not documented because I"m not sure how they work " (docs aren"t good, had to do a lot of trial and error to make " it play nice) " Disable AutoComplPop. let g:acp_enableAtStartup = 0 " Use neocomplcache. let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_ignore_case = 1 " Use smartcase. let g:neocomplcache_enable_smart_case = 1 let g:neocomplcache_enable_auto_select = 1 let g:neocomplcache_enable_fuzzy_completion = 1 let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_fuzzy_completion_start_length = 1 let g:neocomplcache_auto_completion_start_length = 1 let g:neocomplcache_manual_completion_start_length = 1 " Set minimum syntax keyword length. let g:neocomplcache_min_keyword_length = 1 let g:neocomplcache_min_syntax_length = 1 let g:neocomplcache_lock_buffer_name_pattern = "*ku*" " complete with workds from any opened file let g:neocomplcache_same_filetype_lists = {} let g:neocomplcache_same_filetype_lists._ = "_" "支持操作: completion. inoremap pumvisible() ? " " : " " " Define keyword. if !exists("g:neocomplcache_keyword_patterns") let g:neocomplcache_keyword_patterns = {} endif let g:neocomplcache_keyword_patterns["default"] = "hw*" " Plugin key-mappings. inoremap neocomplcache#undo_completion() inoremap neocomplcache#complete_common_string() " , : close popup and delete backword char. inoremap neocomplcache#smart_close_popup()." " inoremap neocomplcache#smart_close_popup()." " inoremap neocomplcache#close_popup() inoremap neocomplcache#cancel_popup()
快捷鍵 | 解釋 |
---|---|
使用Tab鍵進行待提示項目選擇 | |
取消補全 | |
完成待補全項中共同的字符串 | |
關閉待選項 | |
關閉待選項 | |
退出待選項 | |
關閉待選項 |
在這份配置中,使用了vim-choosewin進行窗口管理器. 支持類Tmux的操作.
配置" Window Chooser ------------------------------ " mapping nmap -支持操作(choosewin) " show big letters let g:choosewin_overlay_enable = 1
快捷鍵 | 解釋 |
---|---|
- | 開啟窗口選擇 |
- [ | 選擇上一個tab的窗口 |
- ] | 選擇下一個tab的窗口 |
更多操作可以使用 :help choosewin
靈活的Tab管理在這份配置中使用了TabMan進行Tab管理,可以進行靈活切換與管理
配置" TabMan ------------------------------ " mappings to toggle display, and to focus on it let g:tabman_toggle = "tl" let g:tabman_focus = "tf"支持操作
快捷鍵 | 解釋 |
---|---|
tl | 開啟/關閉tab管理 |
tf | 將光標移動到tab管理窗口 |
在這份配置中,使用了Airline提供更多狀態欄支持.
配置" Airline ------------------------------ let g:airline_powerline_fonts = 1 let g:airline_theme = "bubblegum" "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#whitespace#enabled = 1 " to use fancy symbols for airline, uncomment the following lines and use a " patched font (more info on the README.rst) if !exists("g:airline_symbols") let g:airline_symbols = {} endif let g:airline_left_sep = "" let g:airline_left_alt_sep = "" let g:airline_right_sep = "" let g:airline_right_alt_sep = "" let g:airline_symbols.branch = "" let g:airline_symbols.readonly = "" let g:airline_symbols.linenr = ""支持特性
可以顯示分支,語法靜態檢查結果等.
自動插入頭部在這份配置中寫了個小函數根據新建的不同類型的文件,自動插入頭部,支持python, ruby, bash等.
Markdown實時預覽在這份配置中, 使用了vim-instant-markdown和vim-markdown做Markdown格式的支持,可以支持實時預覽等特性.
此功能需要有node環境支持,可以執行 npm -g install instant-markdown-d 進行安裝.
配置" Vim-markdown ------------------------------ " Disabled automatically folding let g:vim_markdown_folding_disabled=1 " LeTeX math let g:vim_markdown_math=1 " Highlight YAML frontmatter let g:vim_markdown_frontmatter=1 " Vim-instant-markdown ----------------- " If it takes your system too much, you can specify " let g:instant_markdown_slow = 1 " if you don"t want to manually control it " you can open this setting " and when you open this, you can manually trigger preview " via the command :InstantMarkdownPreview let g:instant_markdown_autostart = 0支持操作
快捷鍵 | 解釋 |
---|---|
:InstantMarkdownPreview | 手動觸發markdown文件的預覽 |
在這份配置中, 可以在高亮某單詞時, 通過使用 Ctrl-n 或者 Ctrl-p 進行多游標選擇, 然后進行編輯或修改等操作.
快速文件查找在這份配置中, 可以通過使用,R進行全文查找或者,r進行快速查找, 或者在當前字符串上使用,wR以及,wr來進行全文查找或者快速查找.
快速注釋使用NERDCommenter插件完成快速注釋, 可以通過ci進行快速注釋.
Python 支持完備的Python支持, 可以自動識別當前是系統環境或虛擬環境, 使用:Isort可智能對導入包進行排序, 使用:PymodeLintAuto可自動格式化.
除了上述列出的功能以外, 還有很多方便的特性,可以大大提升效率,在使用中慢慢體會吧!有問題可以在tao12345666333/vim on github 提issue
可以通過公眾號 TheMoeLove 和我聯系
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24883.html
摘要:工欲善其事,必先利其器。對于程序員來說,一款得心應手的好工具能夠讓開發工作效率倍增。這就像下的和下的,能夠實現不同應用程序之間的切換。并不單純的是一款標簽頁搜索工具,它能夠在使用過程中掛起未使用的選項卡,以此來釋放內存,提高性能。 工欲善其事,必先利其器。 對于程序員來說,一款得心應手的好工...
摘要:本文首發于姐的教程網種提高工作效率的操作使用技巧,授權我原創發布。宏使用命令重復執行一些比較簡單的任務時非常高效,但是當需要執行的操作比較復雜時,宏是更理想的選擇。每執行一次宏就會把當前行替換成的形式并自動將光標移到下一行。 本文首發于VV姐的vim教程網 7種提高工作效率的Vim操作-Vim使用技巧(6),授權我原創發布。 Vim一直被認為是一種非常高效的文本編輯器,但是對于普通用戶...
摘要:是一款基于任務的設計模式的自動化工具,能給你的開發效率來一次飛躍。示例配置實現完整的自動編譯并刷新網頁官方網站使用文檔插件列表 Gulp 是一款基于任務的設計模式的自動化工具,能給你的開發效率來一次飛躍。 在很多場合都會聽到前端工和 node 程師推薦 Grunt 來實現項目的自動化,自動化可以自動完成 javascript/coffee/sass/less 等文件的的測試、檢查、合并...
摘要:相比于之前更加高效,易用。同時也是我們個種子用戶群呼聲最高的。首先的調整就是把智能標注的圖標放在了左側,體現從屬關系。戲太足的開發小隊設計的初衷,是在不打擾設計師的前提下,提供完整的項目管理與呼聲最高的畫板功能。 這世上哪有什么天才,有的人只是把大家設計標注、寫前端的時間拿來喝咖啡,和思考罷了 showImg(https://segmentfault.com/img/bVUhyy?w=...
閱讀 1532·2021-11-25 09:43
閱讀 4081·2021-11-15 11:37
閱讀 3208·2021-08-17 10:13
閱讀 3516·2019-08-30 14:16
閱讀 3546·2019-08-26 18:37
閱讀 2502·2019-08-26 11:56
閱讀 1148·2019-08-26 10:42
閱讀 624·2019-08-26 10:39