Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 494|回复: 0

[默认分类] 属于自己个性化的VIM

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-28 10:42:28 | 显示全部楼层 |阅读模式

    Ubuntu Setup Package/common 下载
    1. vim-configuration.tar.gz
    复制代码
    。然后解压此包:
    1. tar -xzf vim-configuration.tar.gz -C ~
    复制代码
    即可实现效果图所示的VIM。
    terminal和vim的配色方案修改参考: linux下Vim和Terminal配色
    vim配置文件详解参考: 所需即所获:像 IDE 一样使用 vim
    下面是自定义vim配置文件,仅供参考!
    1. [code]"""""""""""""""""""""""""""""Keyboard Shortcut""""""""""""""""""""""""""""
    2. " 定义快捷键的前缀,即<Leader>
    3. let mapleader=";"
    4. " 定义快捷键到行首和行尾
    5. nmap LB 0
    6. nmap LE $
    7. " 设置快捷键将选中文本块复制至系统剪贴板
    8. vnoremap <Leader>y "+y
    9. " 设置快捷键将系统剪贴板内容粘贴至 vim
    10. nmap <Leader>p "+p
    11. " 定义快捷键关闭当前分割窗口
    12. nmap <leader>wq :wq<CR>
    13. nmap <Leader>q :q<CR>
    14. " 定义快捷键保存当前窗口内容
    15. nmap <Leader>w :w<CR>
    16. " 定义快捷键保存所有窗口内容并退出 vim
    17. nmap <Leader>WQ :wa<CR>:q<CR>
    18. " 不做任何保存,直接退出 vim
    19. nmap <Leader>Q :qa!<CR>
    20. " 依次遍历子窗口
    21. nnoremap nw <C-W><C-W>
    22. " 跳转至右方的窗口
    23. nnoremap <Leader>lw <C-W>l
    24. " 跳转至左方的窗口
    25. nnoremap <Leader>hw <C-W>h
    26. " 跳转至上方的子窗口
    27. nnoremap <Leader>kw <C-W>k
    28. " 跳转至下方的子窗口
    29. nnoremap <Leader>jw <C-W>j
    30. " 定义快捷键在结对符之间跳转
    31. nmap <Leader>M %
    32. " 显示/隐藏 MiniBufExplorer 窗口
    33. map <Leader>mt :MBEToggle<cr>
    34. " buffer 切换快捷键
    35. map <leader>bn :MBEbn<cr>
    36. map <leader>bp :MBEbp<cr>
    37. """"""""""""""""""""""""""Keyboard END""""""""""""""""""""""""""""""""""""
    38. """"""""""""""""""""""""""User Settings"""""""""""""""""""""""""""""""""""
    39. set nocompatible    "关闭vim兼容模式
    40. set wildmenu "vim自身命令行模式智能补全
    41. set incsearch
    42. set ignorecase
    43. set laststatus=2    " 总是显示状态栏
    44. set ruler " 显示光标当前位置
    45. set number          " 开启行号显示
    46. set cursorline " 高亮显示当前行/列
    47. set cursorcolumn
    48. set hlsearch        " 高亮显示搜索结果
    49. set nowrap " 禁止折行
    50. set expandtab
    51. set tabstop=4       " 设置编辑时制表符占用空格数
    52. set shiftwidth=4 " 设置格式化时制表符占用空格数
    53. set softtabstop=4   " 让 vim 把连续数量的空格视为一个制表符
    54. """""""""""""""""""""""""User END"""""""""""""""""""""""""""""""""""""""""
    55. """"""""""""""""""""""""""Vundle Setting""""""""""""""""""""""""""""""""""
    56. filetype off
    57. set rtp+=~/.vim/bundle/Vundle.vim
    58. call vundle#begin()
    59. Plugin "VundleVim/Vundle.vim"
    60. Plugin "altercation/vim-colors-solarized"
    61. Plugin "Lokaltog/vim-powerline"
    62. "Plugin "octol/vim-cpp-enhanced-highlight"
    63. "Plugin "tomasr/molokai"
    64. "Plugin "nathanaelkane/vim-indent-guides"
    65. "Plugin "derekwyatt/vim-fswitch"
    66. "Plugin "kshenoy/vim-signature"
    67. Plugin "majutsushi/tagbar"
    68. "Plugin "vim-scripts/indexer.tar.gz"
    69. "Plugin "vim-scripts/DfrankUtil"
    70. "Plugin "vim-scripts/vimprj"
    71. "Plugin "dyng/ctrlsf.vim"
    72. "Plugin "terryma/vim-multiple-cursors"
    73. Plugin "scrooloose/nerdcommenter"
    74. "Plugin "vim-scripts/DrawIt"
    75. "Plugin "SirVer/ultisnips"
    76. Plugin "Valloric/YouCompleteMe"
    77. "Plugin "derekwyatt/vim-protodef"
    78. Plugin "scrooloose/nerdtree"
    79. Plugin "jistr/vim-nerdtree-tabs"
    80. Plugin "Xuyuanp/nerdtree-git-plugin"
    81. Plugin "fholgado/minibufexpl.vim"
    82. "Plugin "gcmt/wildfire.vim"
    83. "Plugin "sjl/gundo.vim"
    84. "Plugin "Lokaltog/vim-easymotion"
    85. "Plugin "suan/vim-instant-markdown"
    86. "Plugin "lilydjwg/fcitx.vim"
    87. "Plugin "scrooloose/syntastic"
    88. "Plugin "WolfgangMehner/vim-plugins"
    89. Plugin "ctrlpvim/ctrlp.vim"
    90. Plugin "c.vim"
    91. call vundle#end()
    92. filetype plugin indent on
    93. filetype plugin on
    94. """"""""""""""""""""""""""""Vundle END""""""""""""""""""""""""""""""""""""
    95. syntax enable " 开启语法高亮功能
    96. syntax on       " 允许用指定语法高亮配色方案替换默认方案
    97. filetype on "开启文件类型侦测
    98. "filetype plugin on "根据侦测到的不同类型加载对应的插件
    99. "filetype indent on " 自适应不同语言的智能缩进
    100. set background=dark
    101. colorscheme solarized
    102. set gcr=a:block-blinkon0
    103. set guioptions-=l
    104. set guioptions-=L
    105. set guioptions-=r
    106. set guioptions-=R
    107. set guioptions-=m
    108. set guioptions-=T
    109. " 设置状态栏主题风格
    110. let g:Powerline_colorscheme="solarized256"
    111. " 将制表符扩展为空格
    112. " 让配置变更立即生效
    113. "autocmd BufWritePost $MYVIMRC source $MYVIMRC
    114. " 随 vim 自启动
    115. "let g:indent_guides_enable_on_vim_startup=1
    116. " 从第二层开始可视化显示缩进
    117. let g:indent_guides_start_level=2
    118. " 色块宽度
    119. let g:indent_guides_guide_size=1
    120. " 快捷键 i 开/关缩进可视化
    121. :nmap <silent> <Leader>i <Plug>IndentGuidesToggle
    122. " 基于缩进或语法进行代码折叠
    123. set foldmethod=indent
    124. set foldmethod=syntax
    125. " 启动 vim 时关闭折叠代码
    126. set nofoldenable
    127. " *.cpp 和 *.h 间切换
    128. nmap <silent> <Leader>sw :FSHere<cr>
    129. " YCM 补全菜单配色
    130. " 菜单
    131. "highlight Pmenu ctermfg=2 ctermbg=3 guifg=#005f87 guibg=#EEE8D5
    132. " 选中项
    133. "highlight PmenuSel ctermfg=2 ctermbg=3 guifg=#AFD700 guibg=#106900
    134. " 补全功能在注释中同样有效
    135. "let g:ycm_complete_in_comments=1
    136. " 允许 vim 加载 .ycm_extra_conf.py 文件,不再提示
    137. "let g:ycm_confirm_extra_conf=0
    138. " 开启 YCM 标签补全引擎
    139. "let g:ycm_collect_identifiers_from_tags_files=1
    140. " 引入 C++ 标准库tags
    141. "set tags+=/data/misc/software/misc./vim/stdcpp.tags
    142. " YCM 集成 OmniCppComplete 补全引擎,设置其快捷键
    143. "inoremap <leader>; <C-x><C-o>
    144. " 补全内容不以分割子窗口形式出现,只显示补全列表
    145. "set completeopt-=preview
    146. " 从第一个键入字符就开始罗列匹配项
    147. "let g:ycm_min_num_of_chars_for_completion=1
    148. " 禁止缓存匹配项,每次都重新生成匹配项
    149. "let g:ycm_cache_omnifunc=0
    150. " 语法关键字补全         
    151. "let g:ycm_seed_identifiers_with_syntax=1
    152. """"""""""""""""""""""""""""""""""NREDTree Settings"""""""""""""""""""""""
    153. " 使用 NERDTree 插件查看工程文
    154. nmap <Leader>nt :NERDTreeToggle<CR>
    155. " 设置 NERDTree 子窗口宽度
    156. let NERDTreeWinSize=31
    157. " 设置 NERDTree 子窗口位置
    158. let NERDTreeWinPos="right"
    159. "显示行号
    160. let NERDTreeShowLineNumber=1
    161. " 显示隐藏文件
    162. "let NERDTreeShowHidden=1
    163. " NERDTree 子窗口中不显示冗余帮助信息
    164. let NERDTreeMinimalUI=1
    165. " 删除文件时自动删除文件对应 buffer
    166. let NERDTreeAutoDeleteBuffer=1
    167. "忽略下面类型的文件
    168. let NERDTreeIgnore=["\.pyc","\~$","\.swp"]
    169. "显示书签列表
    170. "let NERDTreeShowBookmarks=1
    171. """"""""""""""""""vim-nerdtree-tabs settings"""""""""""""
    172. "终端运行vim时打开NERDTree窗口
    173. "let g:nerdtree_tabs_open_on_console_startup=1
    174. """""""""""""""""nerdtree-git-plugin settings"""""""""""
    175. let g:NERDTreeIndicatorMapCustom = {
    176.     \ "Modified"  : "✹",
    177.     \ "Staged"    : "✚",
    178.     \ "Untracked" : "✭",
    179.     \ "Renamed"   : "➜",
    180.     \ "Unmerged"  : "═",
    181.     \ "Deleted"   : "✖",
    182.     \ "Dirty"     : "✗",
    183.     \ "Clean"     : "✔︎",
    184.     \ "Unknown"   : "?"
    185.     \ }
    186. """""""""""""""""""""""""""""""""NERDTree END"""""""""""""""""""""""""""""
    187. """"""""""""""""""""""""""""""""CtrlP Settings""""""""""""""""""""""""""""
    188. let g:ctrlp_map = "<c-p>"
    189. let g:ctrlp_cmd = "CtrlP"
    190. "disable the plugin completely
    191. "let g:loaded_ctrlp =1
    192. "CtrlP sets its local working directory according to this variable
    193. let g:ctrlp_working_path_mode = "ra"
    194. """""""""""""""""""""""""""""""Ctrel END"""""""""""""""""""""""""""""""""
    195. """"""""""""""""""""""""""""""Tagbar Settings"""""""""""""""""""""""""""
    196. " 设置 tagbar 子窗口的位置出现在主编辑区的左边
    197. let tagbar_left=1
    198. " 设置显示/隐藏标签列表子窗口的快捷键
    199. nnoremap <Leader>tb :TagbarToggle<CR>
    200. " 设置标签子窗口的宽度
    201. let tagbar_width=31
    202. " tagbar 子窗口中不显示冗余帮助信息
    203. let g:tagbar_compact=1
    204. " 设置 ctags 对哪些代码标识符生成标签
    205. let g:tagbar_type_cpp = {
    206. \ "kinds" : [
    207. \ "c:classes:0:1",
    208. \ "d:macros:0:1",
    209. \ "e:enumerators:0:0",
    210. \ "f:functions:0:1",
    211. \ "g:enumeration:0:1",
    212. \ "l:local:0:1",
    213. \ "m:members:0:1",
    214. \ "n:namespaces:0:1",
    215. \ "p:functions_prototypes:0:1",
    216. \ "s:structs:0:1",
    217. \ "t:typedefs:0:1",
    218. \ "u:unions:0:1",
    219. \ "v:global:0:1",
    220. \ "x:external:0:1"
    221. \ ],
    222. \ "sro" : "::",
    223. \ "kind2scope" : {
    224. \ "g" : "enum",
    225. \ "n" : "namespace",
    226. \ "c" : "class",
    227. \ "s" : "struct",
    228. \ "u" : "union"
    229. \ },
    230. \ "scope2kind" : {
    231. \ "enum" : "g",
    232. \ "namespace" : "n",
    233. \ "class" : "c",
    234. \ "struct" : "s",
    235. \ "union" : "u"
    236. \ }
    237. \ }
    238. """""""""""""""""""""""""""""Tagbar END""""""""""""""""""""""""""""""""
    239. let g:C_FormatDate="%Y/%m/%d"
    240. let g:C_FormatTime="%H:%M:%S"
    复制代码
    [/code]
    效果图


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 07:36 , Processed in 0.346963 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表