{"id":4816,"date":"2017-01-05T15:19:17","date_gmt":"2017-01-05T07:19:17","guid":{"rendered":"https:\/\/lttt.blog.ustc.edu.cn\/?p=4816"},"modified":"2017-01-05T15:19:17","modified_gmt":"2017-01-05T07:19:17","slug":"wodewindows7-vimpeizhivimtex","status":"publish","type":"post","link":"https:\/\/lttt.vanabel.cn\/?p=4816","title":{"rendered":"\u6211\u7684Windows7 vim\u914d\u7f6e(VimTeX)"},"content":{"rendered":"<p>\u9996\u5148, \u6211\u6240\u6709\u7684\u914d\u7f6e\u76ee\u5f55\u90fd\u5728<code>C:\\Vim8\\myvim\\<\/code>\u4e0b(\u4e0b\u8f7d<a href=\"https:\/\/lttt.vanabel.cn\/wp-content\/uploads\/2017\/01\/myvim.zip\">myvim.zip<\/a>).<br \/>\n\u5176\u4e2d, <code>_gvimrc<\/code>, <code>_vimrc<\/code>\u5982\u4e0b, \u4e3b\u8981\u662f\u65b9\u4fbf\u5199LaTeX, \u4f7f\u7528\u7684\u63d2\u4ef6\u662fVimTeX.<\/p>\n<p><code>_vimrc<\/code>\u5305\u542b\u4e86\u4e00\u822c\u8bbe\u5b9a, \u63d2\u4ef6\u7ba1\u7406, VimTeX\u914d\u7f6e, \u4e0e\u7528\u6237\u8bbe\u5b9a. \u8be6\u7ec6\u7684\u914d\u7f6e\u53ef\u4ee5\u53c2\u8003\u6ce8\u91ca.<\/p>\n<pre class=\"lang:vim decode:true \" title=\"_gvimrc\" >set guitablabel=\\[%N\\]\\ %t\\ %M <\/pre>\n<p><!--more--><\/p>\n<pre class=\"lang:vim decode:true \" title=\"_vimrc\">\" vim: foldmethod=marker\n\" General Config {{{1 \nset nocompatible\t\t\t\t\t\t\t\t\"Not for VI\nset number                      \"Line numbers are good\nset spell                       \"Spell checking\nset autochdir                   \"Auto change the current directory\nset wildmenu                    \"Autocomplete of vim command\nset nohls                       \"Disable highlight search\nset is                          \"Increase search\nset ruler                       \"Show position of cursor\nset backspace=indent,eol,start  \"Allow backspace in insert mode\nset visualbell                  \"No sounds\ncolo darkblue\t\t\t\t\t\t\t\t\t  \"Color Theme\n\"colo phd                       \"Retro color theme\n\"colo solarized                 \"Simple&amp;beautiful theme\n\"set background =dark           \"Set background dark\/light\n\"colo molokai                   \"Colorful theme       \n\"let g:molokai_original = 1\nset sw=2 ts=2 bs=2 ai si sta et\t\"Shorter spaces\nset wrap lbr tw=0 wm=0\t\t      \"Set Wrap\nset nolist\t\t\t\t\t\t\t\t\t\t\t\"List disables linebreak\n\"set shellslash\t\t\t\t\t\t\t\t\t\"Use forward slash\nset fenc=utf-8\t\t\t\t\t\t\t\t\t\"Encoding for file\nset enc=utf-8\t\t\t\t\t\t\t\t\t\t\"Encoding for file's contents\nset fencs=usc-bom,\n      \\utf-8,\n      \\chinese,\n      \\cp936,\n      \\gb18030,\n      \\big5,\n      \\euc-jp,\n      \\euc-kr,\n      \\latin1                    \"Supported encoding for file\nif has(\"autocmd\")\n  filetype plugin indent on\nendif\n\" Spell check for English, escape Chinese {{{2\nautocmd FileType tex setlocal spell spelllang=en_us,cjk\n\" Add : _ - to keywords {{{2\nau FileType tex let g:tex_isk='48-57,_,:,-,a-z,A-Z,192-255'\n\" Enable TeX Fold {{{2\nlet g:tex_fold_enabled=1\n\" Add more fold by TexNewMathZones {{{2\n\" see :h tex-math\n\" see $VIM\/myvim\/after\/syntax\/tex.vim\n\" Accept @ in .tex {{{\nau FileType tex let b:tex_stylish=1\n\" User Variable $TEXDOC and $USERHOME {{{2\nlet $TEXDOC =$Vim.\"\/..\/CTEX\/TEXDOC\/\"\ncd $TEXDOC\nlet $USRHOME=$VIM.\"\/myvim\/\"\n\" Add Custom RUNTIMEPATH {{{3\nif has('win32') || has('win64')\n  let &amp;rtp .=','.$VIM.'\/myvim\/,'.$VIM.'\/myvim\/after'\nendif\n\" Plugin Admin {{{1\n\" vim-plug https:\/\/github.com\/junegunn\/vim-plug\n\" Add Plug owner\/projname then run PlugInstall\n\" The root of plug is $Vim\/myvim\/plugged\ncall plug#begin('$Vim\/myvim\/plugged')\n\" for latex\nPlug 'lervag\/vimtex'\n\" for snips\nPlug 'Sirver\/ultisnips'\n\" for fold\nPlug 'Konfekt\/FastFold'\n\"Plug 'nelstrom\/vim-markdown-folding'\n\" for git\nPlug 'tpope\/vim-fugitive'\n\" for session\nPlug 'xolox\/vim-session'\nPlug 'xolox\/vim-misc'\n\" for more default snippets\n\"Plug 'honza\/vim-snippets'\n\"Plug 'ajh17\/VimCompletesMe'\n\" for chinese input\n\"Plug 'vim-scripts\/VimIM'\n\" for color theme solarized\n\"Plug 'altercation\/vim-colors-solarized'\ncall plug#end()\n\" Advanced Config for VimTeX{{{1\nset fillchars=vert:\\|,fold:-\nlet g:vimtex_quickfix_ignored_warnings\t  = []\n\"      \\ 'Underfull',\n\"      \\ 'Overfull',\n\"      \\ 'specifier changed to',\n\"      \\ 'Package mpgraphics Warning',\n\"       \\]\nlet g:tex_flavor                          = 'latex'\nlet g:vimtex_quickfix_mode\t\t            = 2\nlet g:vimtex_latexmk_options              = '-xelatex -verbose -file-line-error -synctex=1 -shell-escape -interaction=nonstopmode' \nlet g:vimtex_view_general_viewer          = 'SumatraPDF'\nlet g:vimtex_view_general_options\t        = '-reuse-instance -inverse-search \"\\\"' . $VIMRUNTIME . '\\gvim.exe\\\" -n --remote-silent +\\%l \\\"\\%f\\\"\" -forward-search @tex @line @pdf'\nlet g:vimtex_view_general_options_latexmk = '-reuse-instance'\n\n\" UltiSnips Config {{{2\nlet g:UltiSnipsSnippetsDir\t\t            =$VIM.'\/myvim\/UltiSnips'\n\" Add Quick Math Input {{{2\n\"`N for \\nabla\n\"let g:vimtex_imaps_disabled = ['N', '~', '^']\ncall vimtex#imaps#add_map({\n      \\ 'lhs' : 'N',\n      \\ 'rhs' : '\\nabla',\n      \\ 'wrapper' : 'vimtex#imaps#wrap_math'\n      \\})\ncall vimtex#imaps#add_map({\n      \\\t'lhs' : '~',\n      \\\t'rhs' : '\\tilde',\n      \\ 'wrapper' : 'vimtex#imaps#wrap_math'\n      \\})\ncall vimtex#imaps#add_map({\n      \\\t'lhs' : '^',\n      \\\t'rhs' : '\\wedge',\n      \\\t'wrapper' : 'vimtex#imaps#wrap_math'\n      \\})\ncall vimtex#imaps#add_map({\n      \\ 'lhs' : '2',\n      \\\t'rhs' :\t'\\sqrt{}',\n      \\\t'wrapper' : 'vimtex#imaps#wrap_math'\n      \\})\n\" TeX Live Preview {{{2\nfunction! Texlivepreview()\n  \"change dir\n  :lcd  %:p:h\n  if filewritable(bufname(\"%\"))\n    silent update %\n  endif\nendfunction\n\"Since not work for VI\nif has(\"gui_running\") \n  \"au CursorMoved *.tex call Texlivepreview()\n  \"au CursorMovedI *.tex call Texlivepreview()\n  au CursorHoldI *.tex call Texlivepreview()\nendif\n\" Custom Config for VimTeX {{{2\n\" Open bib (.\/bib\/jobname) {{{3\n\"map &lt;Leader&gt;lb :silent exec 'tabnew %:h\/bib\/%:t:r.bib'&lt;cr&gt;\nmap &lt;Leader&gt;lb :silent exec \"tabnew %:p:h\/bib\/*.bib\"&lt;tab&gt;&lt;cr&gt;\n\" 7z {{{3\nmap &lt;Leader&gt;lz :silent exec \"!cd %:p:h\/..\/ &amp; 7z u -tzip %:t:r usrdefn.tex %:h:t\/%:t:r.tex %:h:t\/%:t:r.pdf %:h:t\/%:t:r.synctex.gz %:h:t\/bib\/%:t:r.bib &gt;\".$USRHOME.\"\/temp\/7z.log 2&gt;&amp;1\"&lt;cr&gt;&lt;cr&gt;\nmap &lt;Leader&gt;lze :silent exec \"!cd %:p:h\/..\/ &amp; 7z u -seml -tzip %:t:r usrdefn.tex %:h:t\/%:t:r.tex %:h:t\/%:t:r.pdf %:h:t\/%:t:r.synctex.gz %:h:t\/bib\/%:t:r.bib &gt;\".$USRHOME.\"\/temp\/7z.log 2&gt;&amp;1\"&lt;cr&gt;&lt;cr&gt;\n\" Open Working Directory {{{3\n\"set nossl \"use \\ for path instead of \/\nnnoremap &lt;silent&gt; &lt;Leader&gt;ld :if expand(\"%:p:h\") != \"\" \\| exec \"!start explorer\" expand(\"%:p:h:S\") \\| endif&lt;CR&gt;\n\" User Define Maps for VimTex{{{3\n\" Open bib\/*.bib Under Current Dir {{{4\nnmap ;b \\lb\nimap ;b &lt;Esc&gt;:w&lt;cr&gt;;b\n\" Compile by Latexmk {{{4\nnmap ;c \\ll\nimap ;c &lt;Esc&gt;:w&lt;cr&gt;;c\n\" Compile Selected {{{4\nnmap ;C \\lL\nimap ;C &lt;Esc&gt;:w&lt;cr&gt;;C\n\" Open Dir of Current File {{{4\nnmap ;d \\ld\nimap ;d &lt;Esc&gt;:w&lt;cr&gt;;d\n\" Open Compile Output {{{4\nnmap ;o \\lo\nimap ;o &lt;Esc&gt;:w&lt;cr&gt;;o\n\" Open Error Log {{{4\nnmap ;e \\le\nimap ;e &lt;Esc&gt;:w&lt;cr&gt;;e\n\" Show Latexmk Status {{{4\nnmap ;g \\lg\nimap ;g &lt;Esc&gt;:w&lt;cr&gt;;g\n\" Show Fullstatus {{{4\nnmap ;G \\lG\nimap ;G &lt;Esc&gt;:w&lt;cr&gt;;G\n\" Show Vimtex Infomation {{{4\nnmap ;i \\li\nimap ;i &lt;Esc&gt;:w&lt;cr&gt;;i\n\" Show Vimtex Fullinfo {{{4\nnmap ;I \\lI\nimap ;I &lt;Esc&gt;:w&lt;cr&gt;;I\n\" Stop Current Latexmk {{{4\nnmap ;k \\lk\nimap ;k &lt;Esc&gt;:w&lt;cr&gt;;k\n\" Stop All Latexmk {{{4\nnmap ;K \\lK\nimap ;K &lt;Esc&gt;:w&lt;cr&gt;;K\n\" Show Quick Key Reference {{{4\nnmap ;m \\lm\nimap ;m &lt;Esc&gt;:w&lt;cr&gt;;m\n\" Set Main {{{4\nnmap ;M \\ls\nimap ;M &lt;Esc&gt;:w&lt;cr&gt;;M\n\" Clean Latexmk {{{4\nnmap ;n \\lc\nimap ;n &lt;Esc&gt;:w&lt;cr&gt;;n\n\" Full Clean {{{4\nnmap ;N \\lC\nimap ;N &lt;Esc&gt;:w&lt;cr&gt;;N\n\" Relaod Vimtex {{{4\nnmap ;r \\lx\nimap ;r &lt;Esc&gt;:w&lt;cr&gt;;r\n\" Toc Open {{{4\nnmap ;t \\lt\nimap ;t &lt;Esc&gt;:w&lt;cr&gt;;t\n\" Toggle toc open {{{4\nnmap ;T\t\\lT\nimap ;T &lt;Esc&gt;:w&lt;cr&gt;;T\n\" Open Label {{{4\nnmap ;y \\ly\nimap ;y &lt;Esc&gt;:w&lt;cr&gt;;y\n\" Toggle Label Open {{{4\nnmap ;Y \\lY\nimap ;Y &lt;Esc&gt;:w&lt;cr&gt;;Y\n\" Preview {{{4\nnmap ;v \\lv\nimap ;v &lt;Esc&gt;:w&lt;cr&gt;;v\n\" &lt;F5&gt; for Omni Complete {{{4\nimap &lt;F5&gt; &lt;c-x&gt;&lt;c-o&gt;\n\" Autoinstall missing package {{{1\nfunction! InstallPackages()\n  let winview = winsaveview()\n  call inputsave()\n  let cmd = ['tlmgr install']\n  %call add(cmd, matchstr(getline('.'), '\\\\usepackage\\(\\[.*\\]\\)\\?{\\zs.*\\ze\\}'))\n  echomsg join(cmd)\n  echo system(join(cmd))\n  call inputrestore()\n  call winrestview(winview)\nendfunction\ncommand! InstallPackages call InstallPackages()\n\" General Custom Config {{{1\n\" User Defined Maps{{{2\n\"Esc\nimap jk &lt;Esc&gt;\n\"imap () ()&lt;left&gt;\n\"imap [] []&lt;left&gt;\n\"imap {} {}&lt;left&gt;\n\"Move right\nimap &lt;c-e&gt; &lt;right&gt;\n\"Copy to Clipboard\nvnoremap ;x \"*y\n\"Paste from Clopboard\nnmap ;p \"*p\n\"Switch window\nnnoremap nw &lt;C-w&gt;&lt;C-w&gt;\n\"Next\/Previous tab gt gT\n\" MetaPost Compile{{{3\nfunction! MetaPostCompile()\n  let s:origdir = getcwd()\n  lcd %:p:h\n  silent exec '!latexmk -C'\n  silent exec '!xelatex -shell-escape %'\n  silent exec 'cd' fnameescape(s:origdir)\nendfunction\nimap &lt;silent&gt; &lt;F3&gt; &lt;Esc&gt;:call MetaPostCompile()&lt;cr&gt;\nmap &lt;silent&gt; &lt;F3&gt; :call MetaPostCompile()&lt;cr&gt;\n\" Restore Working Status {{{2\n\" Only Save buffers, folds, and winsize. Ignore blank, curdir, help, options\nset sessionoptions=curdir,tabpages,resize,winpos,winsize,options\n\" use xolox\/vim-session \nlet g:session_directory = $USRHOME\nlet g:session_default_name = 'Session'\nlet g:session_autosave ='yes'\nlet g:session_autoload ='yes'\nlet g:session_autosave_periodic =10\nlet g:session_autosave_silent=1\n\" Go to Last Position when Start {{{2\nautocmd BufReadPost *\n      \\ if line(\"'\\\"\") &gt; 1 &amp;&amp; line(\"'\\\"\") &lt;= line(\"$\") |\n      \\   exe \"normal! g`\\\"\" |\n      \\ endif\n\" Remember the Position and Size of Window {{{2\nset sessionoptions+=resize,winpos\n\" Reset the Window Position and Size for TEX {{{2\nautocmd BufNewFile,BufReadPost,BufEnter *.tex \n      \\\tset fdm=syntax\t|\n      \\ if has(\"gui_running\") |\n      \\ \tset lines=12 columns=132 |\n      \\ \twinpos 0 0\t|\n      \\ endif\n\" Set UTF8 Encoding for TEX {{{2\nau FileType tex,markdown,vim set encoding=utf8\n\" Set EN Language as Default {{{2\n\" Just rename the `lang` dir under Vim8\\vim80\n\" Remove Menu\/Toolbar\/Scrollbar {{{2\nset go=aegit\n\" Set Default Fonts for GUI {{{2\nset guifont=Consolas:h16:cANSI\n\" Set Status Line {{{2\n\"set statusline=%F%m%r\\ [FORMAT=%{&amp;ff}]\\ [TYPE=%Y]\\ [ASCII=\\%03.3b]\\ [HEX=\\%02.2B]\\ [POS=%04l,%04v][%p%%]\\ [LEN=%L]\nif has('statusline')\n  set laststatus=2            \t\t\t\t\t\t \" Use airline for statusline.\n  \" Broken down into easily include-able segments\n  set statusline=%&lt;%f\\                     \" Filename\n  set statusline+=%w%h%m%r                 \" Options\n  set statusline+=%{fugitive#statusline()} \" Git Hotness\n  set statusline+=\\ [%{&amp;ff}\/%Y]            \" Filetype\n  set statusline+=\\ [%{getcwd()}]          \" Current dir\n  set statusline+=%=%-14.(%l,%c%V%)\\ %p%%  \" Right aligned file nav info\nendif\n\" Auto Load _vimrc.custom in the Working Root {{{2\nau BufNewFile,BufReadPost,BufEnter *.tex call CustomConfig()\nfunction! CustomConfig()\n  let custom_vimrc = expand('%:p:h').'\/_vimrc.custom'\n  if filereadable(custom_vimrc)\n    exe 'so' custom_vimrc\n  endif\nendfunction\n\" Auto Load vimrc When Save {{{2\naugroup myvimrc\n  au!\n  au! BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so % \n        \\\t| if has('gui_running') | so % | endif\naugroup END<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148, \u6211\u6240\u6709\u7684\u914d\u7f6e\u76ee\u5f55\u90fd\u5728C:\\Vim8\\myvim\\\u4e0b(\u4e0b\u8f7dmyvim.zi &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/lttt.vanabel.cn\/?p=4816\"> <span class=\"screen-reader-text\">\u6211\u7684Windows7 vim\u914d\u7f6e(VimTeX)<\/span> \u9605\u8bfb\u66f4\u591a &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[532,662,664,458],"class_list":["post-4816","post","type-post","status-publish","format-standard","hentry","category-latex","tag-latex-2","tag-vim","tag-vimtex","tag-458"],"_links":{"self":[{"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=\/wp\/v2\/posts\/4816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4816"}],"version-history":[{"count":0,"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=\/wp\/v2\/posts\/4816\/revisions"}],"wp:attachment":[{"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lttt.vanabel.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}