小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Vim的終極配置方案,完美的寫代碼界面!

 WOLFHERD 2020-09-13

先秀一下我的Vim界面

 

語(yǔ)法補(bǔ)全我用的是YouCompleteMe, 有目錄樹(shù)插件,taglist插件等。

通過(guò)插件管理器Vundle來(lái)進(jìn)行安裝,具體方法自行百度。

 

背景可以通過(guò)換張自己喜愛(ài)的壁紙,然后調(diào)終端的透明度,就可以對(duì)著自己喜愛(ài)的場(chǎng)景編程啦~

有語(yǔ)法高亮,語(yǔ)句補(bǔ)全,顯示行號(hào),自動(dòng)縮進(jìn)等等功能。

還有創(chuàng)建源文件自動(dòng)添加頭文件的功能,例如寫一個(gè).c程序

自動(dòng)添加了寫在配置文件里的信息,包括作者名,郵箱,時(shí)間和程序的頭文件等。

 

 

 

配置

如果你需要配置vim,只需在Home目錄創(chuàng)建一個(gè)~/.vimrc文件即可以配置vim了,如需安裝插件,在~/.vim目錄下創(chuàng)建一個(gè)bundle文件夾,插件裝在里面。(我通過(guò)Vundle管理插件,自行百度Vundle怎么使用),可以參考我的vimrc配置文件:

含有完整的注釋

  1. set nocompatible
  2. filetype on
  3. set rtp+=~/.vim/bundle/Vundle.vim
  4. call vundle#begin()
  5. " 這里根據(jù)自己需要的插件來(lái)設(shè)置,以下是我的配置 "
  6. "
  7. " YouCompleteMe:語(yǔ)句補(bǔ)全插件
  8. set runtimepath+=~/.vim/bundle/YouCompleteMe
  9. autocmd InsertLeave * if pumvisible() == 0|pclose|endif "離開(kāi)插入模式后自動(dòng)關(guān)閉預(yù)覽窗口"
  10. let g:ycm_collect_identifiers_from_tags_files = 1 " 開(kāi)啟 YCM基于標(biāo)簽引擎
  11. let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注釋與字符串中的內(nèi)容也用于補(bǔ)全
  12. let g:syntastic_ignore_files=[".*\.py$"]
  13. let g:ycm_seed_identifiers_with_syntax = 1 " 語(yǔ)法關(guān)鍵字補(bǔ)全
  14. let g:ycm_complete_in_comments = 1
  15. let g:ycm_confirm_extra_conf = 0 " 關(guān)閉加載.ycm_extra_conf.py提示
  16. let g:ycm_key_list_select_completion = ['<c-n>', '<Down>'] " 映射按鍵,沒(méi)有這個(gè)會(huì)攔截掉tab, 導(dǎo)致其他插件的tab不能用.
  17. let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']
  18. let g:ycm_complete_in_comments = 1 " 在注釋輸入中也能補(bǔ)全
  19. let g:ycm_complete_in_strings = 1 " 在字符串輸入中也能補(bǔ)全
  20. let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注釋和字符串中的文字也會(huì)被收入補(bǔ)全
  21. let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
  22. let g:ycm_show_diagnostics_ui = 0 " 禁用語(yǔ)法檢查
  23. inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" " 回車即選中當(dāng)前項(xiàng)
  24. nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳轉(zhuǎn)到定義處
  25. let g:ycm_min_num_of_chars_for_completion=2 " 從第2個(gè)鍵入字符就開(kāi)始羅列匹配項(xiàng)
  26. "
  27. " github 倉(cāng)庫(kù)中的插件 "
  28. Plugin 'VundleVim/Vundle.vim'
  29. Plugin 'vim-airline/vim-airline'
  30. "vim-airline配置:優(yōu)化vim界面"
  31. "let g:airline#extensions#tabline#enabled = 1
  32. " airline設(shè)置
  33. " 顯示顏色
  34. set t_Co=256
  35. set laststatus=2
  36. " 使用powerline打過(guò)補(bǔ)丁的字體
  37. let g:airline_powerline_fonts = 1
  38. " 開(kāi)啟tabline
  39. let g:airline#extensions#tabline#enabled = 1
  40. " tabline中當(dāng)前buffer兩端的分隔字符
  41. let g:airline#extensions#tabline#left_sep = ' '
  42. " tabline中未激活buffer兩端的分隔字符
  43. let g:airline#extensions#tabline#left_alt_sep = ' '
  44. " tabline中buffer顯示編號(hào)
  45. let g:airline#extensions#tabline#buffer_nr_show = 1
  46. " 映射切換buffer的鍵位
  47. nnoremap [b :bp<CR>
  48. nnoremap ]b :bn<CR>
  49. " 映射<leader>num到num buffer
  50. map <leader>1 :b 1<CR>
  51. map <leader>2 :b 2<CR>
  52. map <leader>3 :b 3<CR>
  53. map <leader>4 :b 4<CR>
  54. map <leader>5 :b 5<CR>
  55. map <leader>6 :b 6<CR>
  56. map <leader>7 :b 7<CR>
  57. map <leader>8 :b 8<CR>
  58. map <leader>9 :b 9<CR>
  59. " vim-scripts 中的插件 "
  60. Plugin 'taglist.vim'
  61. "ctags 配置:F3快捷鍵顯示程序中的各種tags,包括變量和函數(shù)等。
  62. map <F3> :TlistToggle<CR>
  63. let Tlist_Use_Right_Window=1
  64. let Tlist_Show_One_File=1
  65. let Tlist_Exit_OnlyWindow=1
  66. let Tlist_WinWidt=25
  67. Plugin 'The-NERD-tree'
  68. "NERDTree 配置:F2快捷鍵顯示當(dāng)前目錄樹(shù)
  69. map <F2> :NERDTreeToggle<CR>
  70. let NERDTreeWinSize=25
  71. Plugin 'indentLine.vim'
  72. Plugin 'delimitMate.vim'
  73. " 非 github 倉(cāng)庫(kù)的插件"
  74. " Plugin 'git://git.wincent.com/command-t.git'
  75. " 本地倉(cāng)庫(kù)的插件 "
  76. call vundle#end()
  77. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  78. """""新文件標(biāo)題
  79. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  80. "新建.c,.h,.sh,.java文件,自動(dòng)插入文件頭
  81. autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
  82. ""定義函數(shù)SetTitle,自動(dòng)插入文件頭
  83. func SetTitle()
  84. "如果文件類型為.sh文件
  85. if &filetype == 'sh'
  86. call setline(1, "##########################################################################")
  87. call append(line("."), "# File Name: ".expand("%"))
  88. call append(line(".")+1, "# Author: amoscykl")
  89. call append(line(".")+2, "# mail: amoscykl980629@163.com")
  90. call append(line(".")+3, "# Created Time: ".strftime("%c"))
  91. call append(line(".")+4, "#########################################################################")
  92. call append(line(".")+5, "#!/bin/zsh")
  93. call append(line(".")+6, "PATH=/home/edison/bin:/home/edison/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/work/tools/gcc-3.4.5-glibc-2.3.6/bin")
  94. call append(line(".")+7, "export PATH")
  95. call append(line(".")+8, "")
  96. else
  97. call setline(1, "/*************************************************************************")
  98. call append(line("."), "> File Name: ".expand("%"))
  99. call append(line(".")+1, "> Author: amoscykl")
  100. call append(line(".")+2, "> Mail: amoscykl@163.com ")
  101. call append(line(".")+3, "> Created Time: ".strftime("%c"))
  102. call append(line(".")+4, " ************************************************************************/")
  103. call append(line(".")+5, "")
  104. endif
  105. if &filetype == 'cpp'
  106. call append(line(".")+6, "#include<iostream>")
  107. call append(line(".")+7, "using namespace std;")
  108. call append(line(".")+8, "")
  109. endif
  110. if &filetype == 'c'
  111. call append(line(".")+6, "#include<stdio.h>")
  112. call append(line(".")+7, "")
  113. endif
  114. "if &filetype == 'java'
  115. "call append(line(".")+6,"public class ".expand("%"))
  116. "call append(line(".")+7,"")
  117. "endif
  118. "新建文件后,自動(dòng)定位到文件末尾
  119. autocmd BufNewFile * normal G
  120. endfunc
  121. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  122. "鍵盤命令
  123. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  124. nmap <leader>w :w!<cr>
  125. nmap <leader>f :find<cr>
  126. " 映射全選+復(fù)制 ctrl+a
  127. map <C-A> ggVGY
  128. map! <C-A> <Esc>ggVGY
  129. map <F12> gg=G
  130. " 選中狀態(tài)下 Ctrl+c 復(fù)制
  131. vmap <C-c> "+y
  132. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  133. ""實(shí)用設(shè)置
  134. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  135. " 設(shè)置當(dāng)文件被改動(dòng)時(shí)自動(dòng)載入
  136. set autoread
  137. " quickfix模式
  138. autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
  139. "代碼補(bǔ)全
  140. set completeopt=preview,menu
  141. "允許插件
  142. filetype plugin on
  143. "共享剪貼板
  144. set clipboard=unnamed
  145. "從不備份
  146. set nobackup
  147. "make 運(yùn)行
  148. :set makeprg=g++\ -Wall\ \ %
  149. "自動(dòng)保存
  150. set autowrite
  151. set ruler " 打開(kāi)狀態(tài)欄標(biāo)尺
  152. set cursorline " 突出顯示當(dāng)前行
  153. set magic " 設(shè)置魔術(shù)
  154. set guioptions-=T " 隱藏工具欄
  155. set guioptions-=m " 隱藏菜單欄
  156. "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
  157. " 設(shè)置在狀態(tài)行顯示的信息
  158. set foldcolumn=0
  159. set foldmethod=indent
  160. set foldlevel=3
  161. set foldenable " 開(kāi)始折疊
  162. " 不要使用vi的鍵盤模式,而是vim自己的
  163. set nocompatible
  164. " 語(yǔ)法高亮
  165. set syntax=on
  166. " 去掉輸入錯(cuò)誤的提示聲音
  167. set noeb
  168. " 在處理未保存或只讀文件的時(shí)候,彈出確認(rèn)
  169. set confirm
  170. " 自動(dòng)縮進(jìn)
  171. set autoindent
  172. set cindent
  173. " Tab鍵的寬度
  174. set tabstop=4
  175. " 統(tǒng)一縮進(jìn)為4
  176. set softtabstop=4
  177. set shiftwidth=4
  178. " 不要用空格代替制表符
  179. set noexpandtab
  180. " 在行和段開(kāi)始處使用制表符
  181. set smarttab
  182. " 顯示行號(hào)
  183. set number
  184. " 歷史記錄數(shù)
  185. set history=1000
  186. "禁止生成臨時(shí)文件
  187. set nobackup
  188. set noswapfile
  189. "搜索忽略大小寫
  190. set ignorecase
  191. "搜索逐字符高亮
  192. set hlsearch
  193. set incsearch
  194. "行內(nèi)替換
  195. set gdefault
  196. "編碼設(shè)置
  197. set enc=utf-8
  198. set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
  199. "語(yǔ)言設(shè)置
  200. set langmenu=zh_CN.UTF-8
  201. set helplang=cn
  202. " 我的狀態(tài)行顯示的內(nèi)容(包括文件類型和解碼)
  203. set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
  204. set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
  205. " 總是顯示狀態(tài)行
  206. set laststatus=2
  207. " 命令行(在狀態(tài)行下)的高度,默認(rèn)為1,這里是2
  208. set cmdheight=2
  209. " 偵測(cè)文件類型
  210. filetype on
  211. " 載入文件類型插件
  212. filetype plugin on
  213. " 為特定文件類型載入相關(guān)縮進(jìn)文件
  214. filetype indent on
  215. " 保存全局變量
  216. set viminfo+=!
  217. " 帶有如下符號(hào)的單詞不要被換行分割
  218. set iskeyword+=_,$,@,%,#,-
  219. " 字符間插入的像素行數(shù)目
  220. set linespace=0
  221. " 增強(qiáng)模式中的命令行自動(dòng)完成操作
  222. set wildmenu
  223. " 使回格鍵(backspace)正常處理indent, eol, start等
  224. set backspace=2
  225. " 允許backspace和光標(biāo)鍵跨越行邊界
  226. set whichwrap+=<,>,h,l
  227. " 可以在buffer的任何地方使用鼠標(biāo)(類似office中在工作區(qū)雙擊鼠標(biāo)定位)
  228. set mouse=a
  229. set selection=exclusive
  230. set selectmode=mouse,key
  231. " 通過(guò)使用: commands命令,告訴我們文件的哪一行被改變過(guò)
  232. set report=0
  233. " 在被分割的窗口間顯示空白,便于閱讀
  234. set fillchars=vert:\ ,stl:\ ,stlnc:\
  235. " 高亮顯示匹配的括號(hào)
  236. set showmatch
  237. " 匹配括號(hào)高亮的時(shí)間(單位是十分之一秒)
  238. set matchtime=1
  239. " 光標(biāo)移動(dòng)到buffer的頂部和底部時(shí)保持3行距離
  240. set scrolloff=3
  241. " 為C程序提供自動(dòng)縮進(jìn)
  242. set smartindent
  243. " 高亮顯示普通txt文件(需要txt.vim腳本)
  244. au BufRead,BufNewFile * setfiletype txt
  245. "自動(dòng)補(bǔ)全
  246. :inoremap ( ()<ESC>i
  247. :inoremap ) <c-r>=ClosePair(')')<CR>
  248. ":inoremap { {<CR>}<ESC>O
  249. ":inoremap } <c-r>=ClosePair('}')<CR>
  250. :inoremap [ []<ESC>i
  251. :inoremap ] <c-r>=ClosePair(']')<CR>
  252. :inoremap " ""<ESC>i
  253. :inoremap ' ''<ESC>i
  254. function! ClosePair(char)
  255. if getline('.')[col('.') - 1] == a:char
  256. return "\<Right>"
  257. else
  258. return a:char
  259. endif
  260. endfunction
  261. filetype plugin indent on
  262. "打開(kāi)文件類型檢測(cè), 加了這句才可以用智能補(bǔ)全
  263. set completeopt=longest,menu
  264. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

然后保存文件,重新打開(kāi)終端就行了!

 

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多