{"id":17988192,"url":"https://github.com/program-spiritual/use_vim_in_winx","last_synced_at":"2025-10-12T03:44:20.653Z","repository":{"id":112521010,"uuid":"309270888","full_name":"program-spiritual/use_vim_in_winX","owner":"program-spiritual","description":"The tutorial to config gvim in winX, and fulll shortcut key documentation.","archived":false,"fork":false,"pushed_at":"2020-11-25T04:57:51.000Z","size":10858,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-09T15:12:45.076Z","etag":null,"topics":["gvim","vim","vim-colorscheme","vim-configuration","vim-script","vim-tutorials","vim-windows","vimrc"],"latest_commit_sha":null,"homepage":"https://vim.xiaomiwujiecao.com/#/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/program-spiritual.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-11-02T05:48:41.000Z","updated_at":"2020-11-25T05:06:21.000Z","dependencies_parsed_at":"2023-05-15T14:15:06.811Z","dependency_job_id":null,"html_url":"https://github.com/program-spiritual/use_vim_in_winX","commit_stats":null,"previous_names":["yiyandaoren/use_vim_in_winx","program-spiritual/use_vim_in_winx"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/program-spiritual%2Fuse_vim_in_winX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/program-spiritual%2Fuse_vim_in_winX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/program-spiritual%2Fuse_vim_in_winX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/program-spiritual%2Fuse_vim_in_winX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/program-spiritual","download_url":"https://codeload.github.com/program-spiritual/use_vim_in_winX/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247114510,"owners_count":20885952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gvim","vim","vim-colorscheme","vim-configuration","vim-script","vim-tutorials","vim-windows","vimrc"],"created_at":"2024-10-29T19:11:00.457Z","updated_at":"2025-10-03T18:40:12.080Z","avatar_url":"https://github.com/program-spiritual.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# winX 的 gvim 配置项\n\n\n![](pictures/use_vim_in_windows_start.png)\n\n![](pictures/gvim_snap_shoot.png)\n\n## [在线文档](https://xiaomiwujiecao.github.io/use_vim_in_winX/#/)\n\n[Full Documentation](https://xiaomiwujiecao.github.io/use_vim_in_winX/)\n\n## 前言\n\n\n### 精简配置\n\n按照 `use_vim_as_ide` 的配置， `windows` 需要的环境略显不同。\n`unix` 或 `linux` 的环境相对比较完善，而如果你的开发需求不是使用 `vim` 作为 `c++` 的主要开发工具的话\n你完全可以精简自己的配置文件。\n\n### 适配程度\n\n`unix` 和 `linux` 都有源码编译的版本，`windows` 因为字体、字符集、配置路径等小因素，\n导致我们 `windows` 的工具无法完美的和 `linux` 的 `vim` 编辑器相适配。\n\n\n## 突破点\n\n`gvim` 的版本信息：\n\n```text\n$ vim --version\nVIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 15 2019 23:09:58)\nMS-Windows 32 位控制台版本\n包含补丁: 1-12\n编译者 appveyor@APPVYR-WIN\n巨型版本 无图形界面。  可使用(+)与不可使用(-)的功能:\n+acl                +eval               +multi_byte_ime/dyn -tag_old_static\n+arabic             +ex_extra           +multi_lang         -tag_any_white\n+autocmd            +extra_search       +mzscheme/dyn       +tcl/dyn\n+autochdir          -farsi              -netbeans_intg      +termguicolors\n+autoservername     +file_in_path       +num64              +terminal\n-balloon_eval       +find_in_path       +packages           -termresponse\n+balloon_eval_term  +float              +path_extra         +textobjects\n-browse             +folding            +perl/dyn           +textprop\n++builtin_terms     -footer             +persistent_undo    -tgetent\n+byte_offset        +gettext/dyn        +popupwin           +timers\n+channel            -hangul_input       -postscript         +title\n+cindent            +iconv/dyn          +printer            -toolbar\n+clientserver       +insert_expand      +profile            +user_commands\n+clipboard          +job                +python/dyn         +vartabs\n+cmdline_compl      +jumplist           +python3/dyn        +vertsplit\n+cmdline_hist       +keymap             +quickfix           +virtualedit\n+cmdline_info       +lambda             +reltime            +visual\n+comments           +langmap            +rightleft          +visualextra\n+conceal            +libcall            +ruby/dyn           +viminfo\n+cryptv             +linebreak          +scrollbind         +vreplace\n+cscope             +lispindent         +signs              +vtp\n+cursorbind         +listcmds           +smartindent        +wildignore\n+cursorshape        +localmap           +sound              +wildmenu\n+dialog_con         +lua/dyn            +spell              +windows\n+diff               +menu               +startuptime        +writebackup\n+digraphs           +mksession          +statusline         -xfontset\n-dnd                +modify_fname       -sun_workshop       -xim\n-ebcdic             +mouse              +syntax             -xpm_w32\n+emacs_tags         -mouseshape         +tag_binary         -xterm_save\n     系统 vimrc 文件: \"$VIM\\vimrc\"\n     用户 vimrc 文件: \"$HOME\\_vimrc\"\n 第二用户 vimrc 文件: \"$HOME\\vimfiles\\vimrc\"\n 第三用户 vimrc 文件: \"$VIM\\_vimrc\"\n      用户 exrc 文件: \"$HOME\\_exrc\"\n  第二用户 exrc 文件: \"$VIM\\_exrc\"\n       defaults file: \"$VIMRUNTIME\\defaults.vim\"\n编译方式: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32  -DFEAT_CSCOPE -DFEAT_TERMINAL -DFEAT_SOUND  -DFEAT_JOB_C\nHANNEL      -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 /MP -DHAVE_STDINT_H /Ox /GL -DNDEBUG /arch:IA32 /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\\\"tcl86t.dll\\\" -DDYNAMIC_TCL_VER=\\\"8.6\\\" -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\\\"lua53.dll\\\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\\\"python27.dll\\\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\\\"python37.dll\\\" -DFEAT_MZSCHEME -I \"C:\\Program Files (x86)\\Racket\\include\" -DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\\\"libracket3m_a36fs8.dll\\\" -DDYNAMIC_MZGC_DLL=\\\"libracket3m_a36fs8.dll\\\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\\\"perl528.dll\\\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=24 -DDYNAMIC_RUBY_DLL=\\\"msvcrt-ruby240.dll\\\" -DFEAT_HUGE /Fd.\\ObjCULYHTRZi386/ /Zi\n链接方式: link  /nologo /opt:ref /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib\nole32.lib netapi32.lib uuid.lib /machine:i386   libcmt.lib  user32.lib  /nodefaultlib:lua53.lib  /STACK:8388608  /nodefaultlib:python27.lib /nodefaultlib:python37.lib   \"C:\\Tcl\\lib\\tclstub86.lib\" winmm.lib WSock32.lib /PDB:vim.pdb -debug\n\n```\n\n## 可选项：源码编译\n\n关于编译器 `cl` ：\n\n\u003e `cl.exe` 是控制 `Microsoft C ++` （`MSVC`）`C` 和 `C ++` 编译器和链接器的工具。 \n\u003e `cl.exe` 只能在支持`Windows` 的 `Microsoft Visual Studio` 的操作系统上运行。\n\n关于编译器的详细信息：\n\n请参考：[Compiler Options](https://docs.microsoft.com/en-us/cpp/build/reference/compiler-options?redirectedfrom=MSDN\u0026view=msvc-160)\n\n如果需要自己编译，可以根据上面的版本信息的输编译方式节点的内容，自定义您自己的配置项。\n\n当然，源码需要到 `vim` 的 `github` 页上寻找\n\n\n## 所需环境\n\n如果直接使用，不想配置关于 `C++` 更多的内容，你可以参考我目前配置的 gvim 截屏。\n\n同样的，你可以按照 [use_vim_as_ide](https://github.com/yangyangwithgnu/use_vim_as_ide)  的讲解\n，在 `ubuntu` , `susu`, `redhat` 等 `linux` 发行版系统或 `mac book` 上配置你的专属 `IDE`\n \n如果仅仅是使用以上配置的常用插件功能，您可以按照如下的提示配置你的 gvim：\n\n- python 2.7 32 bit 安装包\n- python 3.7 32 bit 安装包\n- ctags 安装包\n- gvim 8.2 的安装包\n\n这些文件会在 release 版本中\n\n下载地址:https://github.com/xiaomiwujiecao/use_vim_in_winX/releases/tag/download\n\n\n## 配置 vundle 插件管理包\n\n如果你按照 use_vim_as_ide 的配置方式，直接克隆到 HOME 目录下， 那么有可能  vundle 并不会启动。\n\n原因实际上源自系统的隔膜。\n\n当然，好的方式是直接切换到安装 VIM 的路径中，然后克隆到对应版本文件目录下的 vundle 目录中\n\n例如：\n\n如果是 82 版本的，那么你可以切换到 82版本的目录下 ，然后克隆 vundle 至 对应的目录\n\n```bash\ngcl https://github.com/VundleVim/Vundle.vim.git bundle/Vundle.vim\n```\n\n## 配置插件\n\n剩下的就是配置您的 `_vimrc` 文件， 你可以复制代码根目录下的示例文件，然后覆盖其内容到你的本地目录。\n再根据对应的内容，修改其对应的目录参数。\n\n示例文件名： `vimrc_demo`\n\n\n## 关于字体文件\n\n\n字体文件放在项目的根目录，`windows` 系统，下载完成即可双击安装字体。\n\n\n## 关于配置参数参考\n\n目前的版本优化文件为 `vimrc_demo2`，如需直接使用，可以复制到 `Vim` 的根目录下\n然后重命名为 `_vimrc`（`Vim/_vimrc` ，不是 `vim82` 下的）\n\n\n如果不想下载后打开，直接拷贝以下的配置项到你的 `_vimrc` 文件中:\n\n\u003e 版本：82 ，如果版本不是82 ，请自行修改相应的参数\n\n```vim\n\" Vim with all enhancements\nsource $VIMRUNTIME/vimrc_example.vim\nlet mapleader=\";\"\n\"  file type checking \nfiletype off\nset rtp+=$VIMRUNTIME/bundle/Vundle.vim\n\"  start loading vundle plugins \ncall vundle#begin()\nPlugin 'VundleVim/Vundle.vim'\nPlugin 'altercation/vim-colors-solarized'\nPlugin 'tomasr/molokai'\nPlugin 'vim-scripts/phd'\nPlugin 'Lokaltog/vim-powerline'\nPlugin 'octol/vim-cpp-enhanced-highlight'\nPlugin 'nathanaelkane/vim-indent-guides'\nPlugin 'derekwyatt/vim-fswitch'\nPlugin 'kshenoy/vim-signature'\nPlugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'\nPlugin 'majutsushi/tagbar'\nPlugin 'vim-scripts/indexer.tar.gz'\nPlugin 'vim-scripts/DfrankUtil'\nPlugin 'vim-scripts/vimprj'\nPlugin 'dyng/ctrlsf.vim'\nPlugin 'terryma/vim-multiple-cursors'\nPlugin 'scrooloose/nerdcommenter'\nPlugin 'vim-scripts/DrawIt'\nPlugin 'SirVer/ultisnips'\nPlugin 'Valloric/YouCompleteMe'\nPlugin 'derekwyatt/vim-protodef'\nPlugin 'scrooloose/nerdtree'\nPlugin 'fholgado/minibufexpl.vim'\nPlugin 'gcmt/wildfire.vim'\nPlugin 'sjl/gundo.vim'\nPlugin 'Lokaltog/vim-easymotion'\nPlugin 'suan/vim-instant-markdown'\nPlugin 'lilydjwg/fcitx.vim'\nPlugin 'posva/vim-vue'\nPlugin 'isRuslan/vim-es6'\nPlugin 'cakebaker/scss-syntax.vim'\n\" Erlang Runtime\nPlugin 'vim-erlang/vim-erlang-runtime'\n\"  end of load plugins \ncall vundle#end()\nfiletype plugin on\nfiletype plugin indent on\n\"  turn on file type indentation\nfiletype indent on \n\" set the keymaps\nnmap LB 0\nnmap LE $\nvnoremap \u003cLeader\u003ey \"+y\nnmap \u003cLeader\u003ep \"+p\nnmap \u003cLeader\u003eq :q\u003cCR\u003e\nnmap \u003cLeader\u003ew :w\u003cCR\u003e\nnmap \u003cLeader\u003eWQ :wa\u003cCR\u003e:q\u003cCR\u003e\nnmap \u003cLeader\u003eQ :qa!\u003cCR\u003e\nnnoremap nw \u003cC-W\u003e\u003cC-W\u003e\nnnoremap \u003cLeader\u003elw \u003cC-W\u003el\nnnoremap \u003cLeader\u003ehw \u003cC-W\u003eh\nnnoremap \u003cLeader\u003ekw \u003cC-W\u003ek\nnnoremap \u003cLeader\u003ejw \u003cC-W\u003ej\nnmap \u003cLeader\u003eM %\nnmap \u003csilent\u003e \u003cLeader\u003esw :FSHere\u003ccr\u003e\nautocmd BufWritePost $MYVIMRC source $MYVIMRC\n\n\" set file text content encoding\nset encoding=utf-8\n\" set terminal encoding\nset termencoding=utf-8\n\" set file encoding\nset fileencoding=utf-8\nset fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936\nif(has(\"win32\") || has(\"win95\") || has(\"win64\") || has(\"win7\") || has(\"win10\"))\n    source $VIMRUNTIME/delmenu.vim\n    source $VIMRUNTIME/menu.vim\nendif\n\" set the language message encoding\nlanguage messages zh_CN.utf-8\n\"  no temporary files are generated\nset nobackup\nset noundofile\nset nowritebackup\nset noswapfile\n\" turn on the in-time searching function\nset incsearch\n\"ignore case\nset ignorecase\n\" turn off compatibility mode\nset nocompatible\n\" inteligent completion of it's own cli mode\nset wildmenu\n\" set your self color theme\n\"colorscheme solarized\n\"colorscheme molokai\ncolorscheme phd\n\" Prohibit blinking cursor\nset gcr=a:block-blinkon0\n\" suppress scroll bars\nset guioptions-=l\nset guioptions-=L\nset guioptions-=r\nset guioptions-=R\n\" suppress the display of menus and toolbars\nset guioptions-=m\nset guioptions-=T\n\" always show status bar\nset laststatus=2\n\" display the current position of the cursor\nset ruler\n\" turn on line number display\nset number\n\" highlight the current row/column\nset cursorline\nset cursorcolumn\n\" highlight search results\nset hlsearch\n\" no folding \nset nowrap\n\" expand tabs to spaces\nset expandtab\n\" set the number of spaces occupied by tabs during editing\nset tabstop=2\n\" set the number of spaces occupied by tabs during formatting\nset shiftwidth=2\n\" let vim treat consecutive numbers of spaces as a tab\nset softtabstop=2\n\" set gvim display font\nset guifont=YaHei\\ Consolas\\ Hybrid\\ 16\n\" set the status bar theme style\nlet g:Powerline_colorscheme='solarized256'\n\" turn on syntax highlighting\nsyntax enable\n\" allows to replace the default scheme with the specified syntax highlighting color scheme\nsyntax on\n\" set defaults hilighting\nsyntax keyword cppSTLtype initializer_list\n\" encapsulate the command line parameters of the external command wmctrl to maximize the control window into a vim function\nfun! ToggleFullscreen()\n\tcall system(\"wmctrl -ir \" . v:windowid . \" -b toggle,fullscreen\")\nendf\n\" booting with vim\nlet g:indent_guides_enable_on_vim_startup=1\n\" show indentation from the second level  \nlet g:indent_guides_start_level=2\n\" color block width\nlet g:indent_guides_guide_size=1\n\" shortcut key i on/off indentation visualization\n:nmap \u003csilent\u003e \u003cLeader\u003ei \u003cPlug\u003eIndentGuidesToggle\n\" shortcut key for toggleing full screen\nmap \u003csilent\u003e \u003cF11\u003e :call ToggleFullscreen()\u003cCR\u003e\nlet g:SignatureMap = {\n        \\ 'Leader'             :  \"m\",\n        \\ 'PlaceNextMark'      :  \"m,\",\n        \\ 'ToggleMarkAtLine'   :  \"m.\",\n        \\ 'PurgeMarksAtLine'   :  \"m-\",\n        \\ 'DeleteMark'         :  \"dm\",\n        \\ 'PurgeMarks'         :  \"mda\",\n        \\ 'PurgeMarkers'       :  \"m\u003cBS\u003e\",\n        \\ 'GotoNextLineAlpha'  :  \"']\",\n        \\ 'GotoPrevLineAlpha'  :  \"'[\",\n        \\ 'GotoNextSpotAlpha'  :  \"`]\",\n        \\ 'GotoPrevSpotAlpha'  :  \"`[\",\n        \\ 'GotoNextLineByPos'  :  \"]'\",\n        \\ 'GotoPrevLineByPos'  :  \"['\",\n        \\ 'GotoNextSpotByPos'  :  \"mn\",\n        \\ 'GotoPrevSpotByPos'  :  \"mp\",\n        \\ 'GotoNextMarker'     :  \"[+\",\n        \\ 'GotoPrevMarker'     :  \"[-\",\n        \\ 'GotoNextMarkerAny'  :  \"]=\",\n        \\ 'GotoPrevMarkerAny'  :  \"[=\",\n        \\ 'ListLocalMarks'     :  \"ms\",\n        \\ 'ListLocalMarkers'   :  \"m?\"\n        \\ }\n\" automatically full screen when starting vim\nautocmd VimEnter * call ToggleFullscreen()\n\n\" the position of the set tagbar sub-window appears on the left side of the main editing area \nlet tagbar_left=1 \n\" identifier list by tag\nnnoremap \u003cLeader\u003eilt :TagbarToggle\u003cCR\u003e \n\" tabbar sub-window's width\nlet tagbar_width=32 \n\" tagbar's sub-window don't show the help info\nlet g:tagbar_compact=1\n\" set which code identifiers ctags generates tags for\nlet g:tagbar_type_cpp = {\n    \\ 'kinds' : [\n         \\ 'c:classes:0:1',\n         \\ 'd:macros:0:1',\n         \\ 'e:enumerators:0:0', \n         \\ 'f:functions:0:1',\n         \\ 'g:enumeration:0:1',\n         \\ 'l:local:0:1',\n         \\ 'm:members:0:1',\n         \\ 'n:namespaces:0:1',\n         \\ 'p:functions_prototypes:0:1',\n         \\ 's:structs:0:1',\n         \\ 't:typedefs:0:1',\n         \\ 'u:unions:0:1',\n         \\ 'v:global:0:1',\n         \\ 'x:external:0:1'\n     \\ ],\n     \\ 'sro'        : '::',\n     \\ 'kind2scope' : {\n         \\ 'g' : 'enum',\n         \\ 'n' : 'namespace',\n         \\ 'c' : 'class',\n         \\ 's' : 'struct',\n         \\ 'u' : 'union'\n     \\ },\n     \\ 'scope2kind' : {\n         \\ 'enum'      : 'g',\n         \\ 'namespace' : 'n',\n         \\ 'class'     : 'c',\n         \\ 'struct'    : 's',\n         \\ 'union'     : 'u'\n     \\ }\n\\ }\n\n\"Forward traversal of tags with the same name \nnmap \u003cLeader\u003etn :tnext\u003cCR\u003e\n\"Traverse tags with the same name in reverse \nnmap \u003cLeader\u003etp :tprevious\u003cCR\u003e\n\n\" \n\" confirm: Confirm one by one before replacing\n\" wholeword: Whether the whole word matches\n\" replace: Replaced string\nfunction! Replace(confirm, wholeword, replace)\n    wa\n    let flag = ''\n    if a:confirm\n        let flag .= 'gec'\n    else\n        let flag .= 'ge'\n    endif\n    let search = ''\n    if a:wholeword\n        let search .= '\\\u003c' . escape(expand('\u003ccword\u003e'), '/\\.*$^~[') . '\\\u003e'\n    else\n        let search .= expand('\u003ccword\u003e')\n    endif\n    let replace = escape(a:replace, '/\\\u0026~')\n    execute 'argdo %s/' . search . '/' . replace . '/' . flag . '| update'\nendfunction\n\" Unconfirmed, incomplete word\nnnoremap \u003cLeader\u003eR :call Replace(0, 0, input('Replace '.expand('\u003ccword\u003e').' with: '))\u003cCR\u003e\n\" Confirmed, whole words \nnnoremap \u003cLeader\u003erw :call Replace(0, 1, input('Replace '.expand('\u003ccword\u003e').' with: '))\u003cCR\u003e\n\" Confirmed, incomplete word\nnnoremap \u003cLeader\u003erc :call Replace(1, 0, input('Replace '.expand('\u003ccword\u003e').' with: '))\u003cCR\u003e\n\" Confirmed, whole words\nnnoremap \u003cLeader\u003ercw :call Replace(1, 1, input('Replace '.expand('\u003ccword\u003e').' with: '))\u003cCR\u003e\nnnoremap \u003cLeader\u003erwc :call Replace(1, 1, input('Replace '.expand('\u003ccword\u003e').' with: '))\u003cCR\u003e\n\n\" UltiSnips tab key conflicts with YCM, reset it\nlet g:UltiSnipsExpandTrigger=\"\u003cleader\u003e\u003ctab\u003e\"\nlet g:UltiSnipsJumpForwardTrigger=\"\u003cleader\u003e\u003ctab\u003e\"\nlet g:UltiSnipsJumpBackwardTrigger=\"\u003cleader\u003e\u003cs-tab\u003e\"\n\n\" Use NERDTree plug-in to view project files. \n\" Set shortcut keys, shorthand: file list\nnmap \u003cLeader\u003efl :NERDTreeToggle\u003cCR\u003e\n\" Set NERDTree child window width\nlet NERDTreeWinSize=32\n\" Set NERDTree child window position\nlet NERDTreeWinPos=\"right\"\n\" Show hidden files\nlet NERDTreeShowHidden=1\n\" Redundant help information is not displayed in the NERDTree child window\nlet NERDTreeMinimalUI=1\n\" Automatically delete the file corresponding to the buffer when deleting the file\nlet NERDTreeAutoDeleteBuffer=1\n\" Show/hide MiniBufExplorer window\nmap \u003cLeader\u003ebl :MBEToggle\u003ccr\u003e\n\" Buffer switch shortcut\nmap \u003cC-Tab\u003e :MBEbn\u003ccr\u003e\nmap \u003cC-S-Tab\u003e :MBEbp\u003ccr\u003e\n\" Use the internal diff if available.\n\" Otherwise use the special 'diffexpr' for Windows.\nif \u0026diffopt !~# 'internal'\n  set diffexpr=MyDiff()\nendif\nfunction MyDiff()\n  let opt = '-a --binary '\n  if \u0026diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n  if \u0026diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n  let arg1 = v:fname_in\n  if arg1 =~ ' ' | let arg1 = '\"' . arg1 . '\"' | endif\n  let arg1 = substitute(arg1, '!', '\\!', 'g')\n  let arg2 = v:fname_new\n  if arg2 =~ ' ' | let arg2 = '\"' . arg2 . '\"' | endif\n  let arg2 = substitute(arg2, '!', '\\!', 'g')\n  let arg3 = v:fname_out\n  if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n  let arg3 = substitute(arg3, '!', '\\!', 'g')\n  if $VIMRUNTIME =~ ' '\n    if \u0026sh =~ '\\\u003ccmd'\n      if empty(\u0026shellxquote)\n        let l:shxq_sav = ''\n        set shellxquote\u0026\n      endif\n      let cmd = '\"' . $VIMRUNTIME . '\\diff\"'\n    else\n      let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n    endif\n  else\n    let cmd = $VIMRUNTIME . '\\diff'\n  endif\n  let cmd = substitute(cmd, '!', '\\!', 'g')\n  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' \u003e ' . arg3\n  if exists('l:shxq_sav')\n    let \u0026shellxquote=l:shxq_sav\n  endif\nendfunction\n\n\n```\n\n## 安装插件\n\n安装插件的方式：\n\n```\n:PluginInstall\n````\n![](./pictures/gvim_plugin_install.png)\n \n## 超全快捷键\n\n[超全快捷键---\u003e点击进入](https://xiaomiwujiecao.github.io/use_vim_in_winX/#/guide) \n \n \n## `NerdTree` 树形文件目录\n\n### 显示 `NErdTree` ：\n\n在命令模式下输入：\n\n```text\n\u003cLeader\u003efl\n\n```\n\n或使用 `ctrl+w+l` 快捷键\n\n\n### `NerdTree` 快捷键参考：\n\n```text\no.......打开文件，目录和书签..................................|NERDTree-o|\ngo......打开所选文件，但将光标保留在 NERDTree 中...............|NERDTree-go|\nt.......在新选项卡中打开选定的节点/书签........................|NERDTree-t|\nT.......与命令 “t” 相同，但将焦点放在当前选项卡上...............|NERDTree-T|\ni.......在拆分窗口中打开所选文件...............................|NERDTree-i|\ngi......与命令 i 相同，但将光标留在 NERDTree 上................|NERDTree-gi|\ns.......在新的 vsplit 中打开选定的文件.........................|NERDTree-s|\ngs......与 s 相同，但将光标留在 NERDTree 上....................|NERDTree-gs|\nO.......递归地打开所选目录....................................|NERDTree-O|\nx.......关闭当前节点父级......................................|NERDTree-x|\nX.......递归关闭当前节点的所有子节点............................|NERDTree-X|\ne.......编辑当前的dif........................................|NERDTree-e|\n\n\u003cCR\u003e...................................................与 |NERDTree-o| 相同.\n双击....................................................与 |NERDTree-o| 映射相同.\n中击....................................................对文件而言与 |NERDTree-i| 相同 , 对目录而言与 |NERDTree-e| 对相同.\n\nD.......删除当前书签 .......................................|NERDTree-D|\n\nP.......跳到根节点..........................................|NERDTree-P|\np.......跳到当前节点的父节点..................................|NERDTree-p|\nK.......在当前树深下跳入目录..................................|NERDTree-K|\nJ.......在当前树深下跳入目录..................................|NERDTree-J|\n\u003cC-J\u003e...跳至当前目录的下一个同级...............................|NERDTree-C-J|\n\u003cC-K\u003e...跳至当前目录的上一个同级...............................|NERDTree-C-K|\n\nC.......将树根更改为所选目录..................................|NERDTree-C|\nu.......将树根目录上移一个目录................................|NERDTree-u|\nU.......与命令 “u” 相同，除了旧的根节点保持打开状态..............|NERDTree-U|\nr.......递归刷新当前目录......................................|NERDTree-r|\nR.......递归刷新当前根........................................|NERDTree-R|\nm.......显示 NERD 树菜单.....................................|NERDTree-m|\ncd......将 CWD 更改为所选节点的目录............................|NERDTree-cd|\n\nI.......切换是否显示隐藏文件...................................|NERDTree-I|\nf.......切换是否使用文件过滤器.................................|NERDTree-f|\nF.......切换是否显示文件......................................|NERDTree-F|\nB.......切换是否显示书签表....................................|NERDTree-B|\n\nq.......关闭NERDTree窗口......................................|NERDTree-q|\nA.......缩放（最大化/最小化）NERDTree 窗口......................|NERDTree-A|\n?.......切换快速帮助的显示.....................................|NERDTree-?|\n\n------------------------------------------------------------------------------\n                                                                  *NERDTree-o*\n```\n\n## changelog\n\n- 2020-11-07 \n\n更新 `NerdTree` 相关参数\n\n- 2020-11-04\n\n\u003e 解决右键菜单乱码问题\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogram-spiritual%2Fuse_vim_in_winx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogram-spiritual%2Fuse_vim_in_winx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogram-spiritual%2Fuse_vim_in_winx/lists"}