乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       WOLFHERD 2020-09-13

      先秀一下我的Vim界面

       

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

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

       

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

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

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

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

       

       

       

      配置

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

      含有完整的注釋

      1. set nocompatible
      2. filetype on
      3. set rtp+=~/.vim/bundle/Vundle.vim
      4. call vundle#begin()
      5. " 這里根據(jù)自己需要的插件來設(shè)置,以下是我的配置 "
      6. "
      7. " YouCompleteMe:語句補(bǔ)全插件
      8. set runtimepath+=~/.vim/bundle/YouCompleteMe
      9. autocmd InsertLeave * if pumvisible() == 0|pclose|endif "離開插入模式后自動關(guān)閉預(yù)覽窗口"
      10. let g:ycm_collect_identifiers_from_tags_files = 1 " 開啟 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 " 語法關(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>'] " 映射按鍵,沒有這個會攔截掉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 " 注釋和字符串中的文字也會被收入補(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 " 禁用語法檢查
      23. inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" " 回車即選中當(dāng)前項
      24. nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳轉(zhuǎn)到定義處
      25. let g:ycm_min_num_of_chars_for_completion=2 " 從第2個鍵入字符就開始羅列匹配項
      26. "
      27. " github 倉庫中的插件 "
      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打過補(bǔ)丁的字體
      37. let g:airline_powerline_fonts = 1
      38. " 開啟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顯示編號
      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)前目錄樹
      69. map <F2> :NERDTreeToggle<CR>
      70. let NERDTreeWinSize=25
      71. Plugin 'indentLine.vim'
      72. Plugin 'delimitMate.vim'
      73. " 非 github 倉庫的插件"
      74. " Plugin 'git://git.wincent.com/command-t.git'
      75. " 本地倉庫的插件 "
      76. call vundle#end()
      77. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      78. """""新文件標(biāo)題
      79. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      80. "新建.c,.h,.sh,.java文件,自動插入文件頭
      81. autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
      82. ""定義函數(shù)SetTitle,自動插入文件頭
      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. "新建文件后,自動定位到文件末尾
      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è)置
      134. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      135. " 設(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 運行
      148. :set makeprg=g++\ -Wall\ \ %
      149. "自動保存
      150. set autowrite
      151. set ruler " 打開狀態(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 " 開始折疊
      162. " 不要使用vi的鍵盤模式,而是vim自己的
      163. set nocompatible
      164. " 語法高亮
      165. set syntax=on
      166. " 去掉輸入錯誤的提示聲音
      167. set noeb
      168. " 在處理未保存或只讀文件的時候,彈出確認(rèn)
      169. set confirm
      170. " 自動縮進(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. " 在行和段開始處使用制表符
      181. set smarttab
      182. " 顯示行號
      183. set number
      184. " 歷史記錄數(shù)
      185. set history=1000
      186. "禁止生成臨時文件
      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. "語言設(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. " 偵測文件類型
      210. filetype on
      211. " 載入文件類型插件
      212. filetype plugin on
      213. " 為特定文件類型載入相關(guān)縮進(jìn)文件
      214. filetype indent on
      215. " 保存全局變量
      216. set viminfo+=!
      217. " 帶有如下符號的單詞不要被換行分割
      218. set iskeyword+=_,$,@,%,#,-
      219. " 字符間插入的像素行數(shù)目
      220. set linespace=0
      221. " 增強(qiá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. " 通過使用: commands命令,告訴我們文件的哪一行被改變過
      232. set report=0
      233. " 在被分割的窗口間顯示空白,便于閱讀
      234. set fillchars=vert:\ ,stl:\ ,stlnc:\
      235. " 高亮顯示匹配的括號
      236. set showmatch
      237. " 匹配括號高亮的時間(單位是十分之一秒)
      238. set matchtime=1
      239. " 光標(biāo)移動到buffer的頂部和底部時保持3行距離
      240. set scrolloff=3
      241. " 為C程序提供自動縮進(jìn)
      242. set smartindent
      243. " 高亮顯示普通txt文件(需要txt.vim腳本)
      244. au BufRead,BufNewFile * setfiletype txt
      245. "自動補(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. "打開文件類型檢測, 加了這句才可以用智能補(bǔ)全
      263. set completeopt=longest,menu
      264. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

      然后保存文件,重新打開終端就行了!

       

       

       

       

       

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約