*[[Vim:http://www.vim.org/]] [#c1593263] #ref(http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/200px-Vimlogo.svg.png,right,around,nolink,Vim) &color(White,#5F2F2F){ ''◆目次◆'' };&br; #contents #img(,clear) *Vim とは [#h0ea1272] [[Vim>WikiPedia.ja:Vim]] は Bram Moolenaar 氏を中心に開発が行われているエディタです.~ Vim は,他の多くのエディタと異なり,「モード」という概念が存在します.~ モードを切り替えることで,一つのキーに対して複数の意味を割り当てることができます.~ ある程度快適に使用するためには練習が必要になりますが,習熟すれば高速で効率のよい編集が可能になります.~ -[[Vim 公式サイト:http://www.vim.org/]] --ftp://ftp.vim.org/pub/vim/ ---ftp://ftp.vim.org/pub/vim/pc ---ftp://ftp.vim.org/pub/vim/unix/ -[[Vim 開発サイト:http://code.google.com/p/vim/]] --[[コミットログ:http://code.google.com/p/vim/source/list]] -[[vim-jp » Vimのユーザと開発者を結ぶコミュニティサイト:http://vim-jp.org/]] --[[twitter:http://twitter.com/vim_jp]] -[[vim-jp's Profile - GitHub:https://github.com/vim-jp]] --[[vim-jp/vimdoc-ja - GitHub:https://github.com/vim-jp/vimdoc-ja]] --[[UNIX系GUI版で起動時にハングしたり起動が遅くなったりしていた問題が修正されました。:http://vim-jp.org/2011/10/21/patch_7.3.344.html]] //[[Vim team:http://sourceforge.net/project/memberlist.php?group_id=8] //[[develop:http://sourceforge.net/projects/vim/develop]] **動作環境 [#w6b94f3c] [[download : vim online:http://www.vim.org/download.php]] を参照. **License [#w85a7064] Vim は,チャリティウェアです.~ [[VIM ライセンス:http://code.google.com/p/vim/source/browse/runtime/doc/uganda.txt]] ([[日本語訳:http://vim-jp.org/vimdoc-ja/uganda.html]]) でリリースされています.~ **リリース情報/ChangeLog [#n22b1c9a] [[コミットログ:http://code.google.com/p/vim/source/list]] を参照.~ GVim 7.3.034 よりも前のバージョンには DLL 読み込みに関する脆弱性が存在します.~ 最新版へアップデートしてください.~ 詳細は [[GVim における DLL 読み込みに関する脆弱性:http://jvn.jp/jp/JVN27868039/]] を参照してください.~ GVim 7.3.344 で UNIX 系 の GVim で起動時にハングしたり起動が遅くなったりしていた問題が修正されました.~ Gvim 7.3.520 で Ubuntu 12.04 でパッケージマネージャ経由でインストールされた GVim が起動時に数十秒ハングする問題が修正されました.~ **派生版 [#ka1322d7] ***Windows [#mcb80f41] -[[KaoriYa (香り屋) 版:http://www.kaoriya.net/software/vim]] Vim オリジナルに,日本語を扱う上で便利な設定やスクリプトが追加されている --[[koron (MURAOKA Taro) · GitHub:https://github.com/koron]] --[[Vim昔語/遭遇編 — KaoriYa:http://www.kaoriya.net/blog/201108/20110811]] //-[[vim-win3264:http://code.google.com/p/vim-win3264/]] //-[[gVim Portable:http://sf.net/projects/portableapps/files/gVim%20Portable/]] ***Windows, Linux [#o0f5036e] -[[Vim UTF-8 日本語版 - fudist:https://sites.google.com/site/fudist/Home/vim-nihongo-ban]] UTF-8 化した vim/gvim ***Windows, GNU/Linux, FreeBSD [#q4511794] -[[Cream:http://cream.sf.net/]] モーダルな Vim をモードレスに ***OS X [#gb7dcad0] -[[MacVim-KaoriYa:http://code.google.com/p/macvim-kaoriya/]] 香り屋さんの Windows 版の使い勝手に近い MacVim を勝手に目指すプロジェクト --[[コミットログ:https://github.com/splhack/macvim/commits/master]] -[[MacVim:https://github.com/b4winckler/macvim/downloads]] --[[コミットログ:https://github.com/b4winckler/macvim/commits/master]] -[[vim-cocoa:http://code.google.com/p/vim-cocoa/]] --[[コミットログ:https://github.com/jjgod/vim-cocoa/commits/master]] -[[MacOSX Vim:http://sf.net/projects/macosxvim/files/]] ***Android [#o2329571] -[[VimTouch:https://github.com/momodalo/vimtouch]] --[[Vim Touch - Google Play:https://play.google.com/store/apps/details?id=net.momodalo.app.vimtouch&hl=ja]] //-[[Vim for Android:http://ux.getuploader.com/vim/]] ***iOS [#o6e8ea48] -[[Applidium — Vim:http://applidium.com/en/applications/vim/]] --[[Vim - iTunes App Store:https://itunes.apple.com/jp/app/vim/id492668168?mt=8]] **ヘルプ [#b043417b] -[[Vim documentation: help:http://vim-jp.org/vimdoc-ja/]] Vim のヘルプを和訳したもの -[[Vim-users.jp:http://vim-users.jp/]] -[[名無しのvim使い:http://nanasi.jp/]] -[[ずんWiki - vim:http://www.kawaz.jp/pukiwiki/?vim]] -[[VimWiki:http://vimwiki.net/]] -[[Vim Tips Wiki:http://vim.wikia.com/]] **スクリーンショット [#p2c08dcd] [[&ref(http://linux.dsplabs.com.au/files/p54-resume/resume-latex-vim-small.png,nolink,Vim で LaTeX ファイルを編集している画面);>http://linux.dsplabs.com.au/files/p54-resume/resume-latex-vim.png]] *不具合 [#h94d310c] **Ubuntu 12.04 の gvim がまともに動かない → [[Patch 7.3.520 にて修正されました:http://vim-jp.org/blog/2012/05/20/patch_7.3.520.html]] [#fba97189] 回避策:gvim -f で起動~ -[[GTK版GVimが起動時に数十秒待たされる問題が修正されました。:http://vim-jp.org/blog/2012/05/20/patch_7.3.520.html]] -[[Issue #193: Ubuntu 12.04 の gvim がまともに動かない · vim-jp/issues · GitHub:https://github.com/vim-jp/issues/issues/193]] -[[Bug #987707 “gvim in Precise can't connect to ibus and takes a l...” : Bugs : “vim” package : Ubuntu:https://bugs.launchpad.net/ubuntu/+source/vim/+bug/987707]] **Ubuntu 11.10 や GNOME 3 で GVim を起動すると入力するまでに時間がかかる → [[Patch 7.3.344 にて修正されました:http://vim-jp.org/2011/10/21/patch_7.3.344.html]] [#i39ca67b] 回避策:gvim -f で起動~ [[Patch 7.3.344 にて修正されました:http://vim-jp.org/2011/10/21/patch_7.3.344.html]] -[[UNIX系GUI版で起動時にハングしたり起動が遅くなったりしていた問題が修正されました。:http://vim-jp.org/2011/10/21/patch_7.3.344.html]] --[[version 7.3.344:http://code.google.com/p/vim/source/detail?r=v7-3-344]] --[[version 7.3.315:http://code.google.com/p/vim/source/detail?r=v7-3-315]] -[[#85: gvimの起動が遅い - Issues - vim-jp/issues - GitHub:https://github.com/vim-jp/issues/issues/85]] -[[Bug #877193 in vim (Ubuntu): “gvim freezes when started from a terminal”:https://bugs.launchpad.net/ubuntu/+source/vim/+bug/877193]] -[[Bug #872095 in vim (Ubuntu): “gvim from vim-gnome hang up on start”:https://bugs.launchpad.net/ubuntu/+source/vim/+bug/872095]] -[[Bug #771810 in vim (Ubuntu): “gvim occasionally shows error "Unable to register window with path... Timeout was reached" ”:https://bugs.launchpad.net/ubuntu/+source/vim/+bug/771810]] -[[GNOME3とGVim:http://hackathon.g.hatena.ne.jp/zrail/20110808/1312835084]] -[[Slow response in gvim, gnome3:http://forums.fedoraforum.org/showthread.php?p=1464463]] -[[IBUS-WARNING **: Create input context failed:http://fairladyx.zapto.org/node/15]] *Vim で LaTeX [#i2be46c6] **tex.vim [#y0b061e7] $HOME/vimfiles/ftplugin/tex.vim (Windows), $HOME/.vim/ftplugin/tex.vim (OS X, Linux) に設定を記述することで Vim からタイプセット・プレビューができます.~ tex.vim を使用する場合は $HOME/_vimrc (Windows), $HOME/.vimrc (OS X, Linux) に ---- "" "" tex.vim "" filetype plugin on let g:tex_flavor='latex' ---- を記述しておく必要があります.~ 補完機能が必要な方は [[neocomplcache & neosnippet>neocomplcache]] を使用してください.~ ---- -$HOME/vimfiles/ftplugin/tex.vim (Windows の場合) -$HOME/.vim/ftplugin/tex.vim (OS X, Linux の場合) ---- if has('win32') || has('win64') let g:typeset = 'pdfplatex' let g:bibtex = 'pbibtex -kanji=utf8 -sjis-terminal' let g:makeindex = 'mendex -U -T' let g:viewer = 'texworks' elseif has('macunix') let g:typeset = 'pdfplatex' let g:bibtex = 'pbibtex' let g:makeindex = 'mendex' let g:viewer = 'preview' else let g:typeset = 'pdfplatex' let g:bibtex = 'pbibtex' let g:makeindex = 'mendex' let g:viewer = 'evince' endif let g:master = expand("%:t") com! -nargs=1 Typeset :call SetTypeset(<f-args>) com! -nargs=1 Viewer :call SetViewer(<f-args>) com! -nargs=1 TeXmaster :call SetTeXmaster(<f-args>) function! TypesetFile() if &ft != 'tex' echo "calling TeXworks from a non-tex file" return '' end if g:typeset == 'pdfplatex' call PdfpLaTeX("pdfplatex") elseif g:typeset == 'pdfplatex2' call PdfpLaTeX("pdfplatex2") elseif g:typeset == 'pdfuplatex' call PdfpLaTeX("pdfuplatex") elseif g:typeset == 'pdfuplatex2' call PdfpLaTeX("pdfuplatex2") elseif g:typeset == 'pdflatex' call PdfLaTeX("pdflatex") elseif g:typeset == 'lualatex' call PdfLaTeX("lualatex") elseif g:typeset == 'luajitlatex' call PdfLaTeX("luajitlatex") elseif g:typeset == 'xelatex' call PdfLaTeX("xelatex") else call PdfpLaTeX("pdfplatex") endif return '' endfunction function! ViewFile() if &ft != 'tex' echo "calling TeXworks from a non-tex file" return '' end if g:viewer == 'texworks' call TeXworks() elseif g:viewer == 'sumatrapdf' call SumatraPDF() elseif g:viewer == 'preview' call Preview() elseif g:viewer == 'texshop' call TeXShop() elseif g:viewer == 'skim' call Skim() elseif g:viewer == 'evince' call Evince() elseif g:viewer == 'fwdevince' call FwdEvince() elseif g:viewer == 'okular' call Okular() elseif g:viewer == 'zathura' call Zathura() elseif g:viewer == 'qpdfview' call Qpdfview() elseif g:viewer == 'pdfviewer' call PdfViewer() elseif g:viewer == 'adobereader' call AdobeReader() endif return '' endfunction function! SetViewer(viewer) if has('win32') || has('win64') if a:viewer == 'texworks' let g:viewer = 'texworks' elseif a:viewer == 'sumatrapdf' let g:viewer = 'sumatrapdf' elseif a:viewer == 'adobereader' let g:viewer = 'adobereader' else let g:viewer = 'texworks' endif elseif has('macunix') if a:viewer == 'preview' let g:viewer = 'preview' elseif a:viewer == 'texshop' let g:viewer = 'texshop' elseif a:viewer == 'texworks' let g:viewer = 'texworks' elseif a:viewer == 'skim' let g:viewer = 'skim' elseif a:viewer == 'adobereader' let g:viewer = 'adobereader' else let g:viewer = 'preview' endif else if a:viewer == 'evince' let g:viewer = 'evince' elseif a:viewer == 'fwdevince' let g:viewer = 'fwdevince' elseif a:viewer == 'texworks' let g:viewer = 'texworks' elseif a:viewer == 'okular' let g:viewer = 'okular' elseif a:viewer == 'zathura' let g:viewer = 'zathura' elseif a:viewer == 'qpdfview' let g:viewer = 'qpdfview' elseif a:viewer == 'pdfviewer' let g:viewer = 'pdfviewer' elseif a:viewer == 'adobereader' let g:viewer = 'adobereader' else let g:viewer = 'evince' endif endif endfunction function! SetTypeset(type) if a:type == 'pdfplatex' let g:typeset = 'pdfplatex' elseif a:type == 'pdfplatex2' let g:typeset = 'pdfplatex2' elseif a:type == 'pdfuplatex' let g:typeset = 'pdfuplatex' elseif a:type == 'pdfuplatex2' let g:typeset = 'pdfuplatex2' elseif a:type == 'pdflatex' let g:typeset = 'pdflatex' elseif a:type == 'lualatex' let g:typeset = 'lualatex' elseif a:type == 'luajitlatex' let g:typeset = 'luajitlatex' elseif a:type == 'xelatex' let g:typeset = 'xelatex' else let g:typeset = 'pdfplatex' endif endfunction function! SetTeXmaster(master) if a:master != '' let g:master = a:master endif endfunction function! PdfpLaTeX(type) if &ft != 'tex' echo "calling PdfpLaTeX from a non-tex file" return '' end w let masterDir = getcwd() let masterTeXFile = g:master let masterBaseName = fnamemodify(masterTeXFile, ":t:r") if a:type == 'pdfplatex' if has('win32') || has('win64') let latex = 'platex -synctex=1 -guess-input-enc -kanji=utf8 -sjis-terminal -jobname=' . masterBaseName . ' ' . masterTeXFile let dvipdfm = 'dvipdfmx' . ' ' . masterBaseName let g:bibtex = 'pbibtex -kanji=utf8 -sjis-terminal' let g:makeindex = 'mendex -U -T' if g:viewer == 'adobereader' let pdfclose = 'tasklist /fi "IMAGENAME eq AcroRd32.exe" /nh | findstr "AcroRd32.exe" > nul && echo exit | pdfdde --rxi' let execString = 'cd /d ' . masterDir . ' && ' . pdfclose . ' & ' . latex . ' && ' . dvipdfm else let execString = 'cd /d ' . masterDir . ' && ' . latex . ' && ' . dvipdfm endif else let latex = 'platex -synctex=1' . ' ' . masterTeXFile let dvipdfm = 'dvipdfmx' . ' ' . masterBaseName let g:bibtex = 'pbibtex' let g:makeindex = 'mendex' let execString = 'cd ' . masterDir . ' && ' . latex . ' && ' . dvipdfm endif elseif a:type == 'pdfplatex2' if has('win32') || has('win64') let latex = 'platex -synctex=1 -guess-input-enc -kanji=utf8 -sjis-terminal -jobname=' . masterBaseName . ' ' . masterTeXFile let dvips = 'dvips -Ppdf -z -f' . ' ' . masterBaseName . '.dvi' . ' | convbkmk -g > ' . masterBaseName . '.ps' let ps2pdf = 'ps2pdf.bat' . ' ' . masterBaseName . '.ps' let g:bibtex = 'pbibtex -kanji=utf8 -sjis-terminal' let g:makeindex = 'mendex -U -T' if g:viewer == 'adobereader' let pdfclose = 'tasklist /fi "IMAGENAME eq AcroRd32.exe" /nh | findstr "AcroRd32.exe" > nul && echo exit | pdfdde --rxi' let execString = 'cd /d ' . masterDir . ' && ' . pdfclose . ' & ' . latex . ' && ' . dvips . ' && ' . ps2pdf else let execString = 'cd /d ' . masterDir . ' && ' . latex . ' && ' . dvips . ' && ' . ps2pdf endif else let latex = 'platex -synctex=1' . ' ' . masterTeXFile let dvips = 'dvips -Ppdf -z -f' . ' ' . masterBaseName . '.dvi' . ' | convbkmk -g > ' . masterBaseName . '.ps' let ps2pdf = 'ps2pdf' . ' ' . masterBaseName . '.ps' let g:bibtex = 'pbibtex' let g:makeindex = 'mendex' let execString = 'cd ' . masterDir . ' && ' . latex . ' && ' . dvips . ' && ' . ps2pdf endif elseif a:type == 'pdfuplatex' if has('win32') || has('win64') let latex = 'uplatex -synctex=1 -no-guess-input-enc -kanji=utf8' . ' ' . masterTeXFile let dvipdfm = 'dvipdfmx' . ' ' . masterBaseName let g:bibtex = 'upbibtex' let g:makeindex = 'mendex -U' if g:viewer == 'adobereader' let pdfclose = 'tasklist /fi "IMAGENAME eq AcroRd32.exe" /nh | findstr "AcroRd32.exe" > nul && echo exit | pdfdde --rxi' let execString = 'cd /d ' . masterDir . ' && ' . pdfclose . ' & ' . latex . ' && ' . dvipdfm else let execString = 'cd /d ' . masterDir . ' && ' . latex . ' && ' . dvipdfm endif else let latex = 'uplatex -synctex=1' . ' ' . masterTeXFile let dvipdfm = 'dvipdfmx' . ' ' . masterBaseName let g:bibtex = 'upbibtex' let g:makeindex = 'mendex' let execString = 'cd ' . masterDir . ' && ' . latex . ' && ' . dvipdfm endif elseif a:type == 'pdfuplatex2' if has('win32') || has('win64') let latex = 'uplatex -synctex=1 -no-guess-input-enc -kanji=utf8' . ' ' . masterTeXFile let dvips = 'dvips -Ppdf -z -f' . ' ' . masterBaseName . '.dvi' . ' | convbkmk -u > ' . masterBaseName . '.ps' let ps2pdf = 'ps2pdf.bat' . ' ' . masterBaseName . '.ps' let g:bibtex = 'upbibtex' let g:makeindex = 'mendex -U' if g:viewer == 'adobereader' let pdfclose = 'tasklist /fi "IMAGENAME eq AcroRd32.exe" /nh | findstr "AcroRd32.exe" > nul && echo exit | pdfdde --rxi' let execString = 'cd /d ' . masterDir . ' && ' . pdfclose . ' & ' . latex . ' && ' . dvips . ' && ' . ps2pdf else let execString = 'cd /d ' . masterDir . ' && ' . latex . ' && ' . dvips . ' && ' . ps2pdf endif else let latex = 'platex -synctex=1' . ' ' . masterTeXFile let dvips = 'dvips -Ppdf -z -f' . ' ' . masterBaseName . '.dvi' . ' | convbkmk -u > ' . masterBaseName . '.ps' let ps2pdf = 'ps2pdf' . ' ' . masterBaseName . '.ps' let g:bibtex = 'upbibtex' let g:makeindex = 'mendex' let execString = 'cd ' . masterDir . ' && ' . latex . ' && ' . dvips . ' && ' . ps2pdf endif endif execute 'silent! !' execString redraw! return '' endfunction function! PdfLaTeX(type) if &ft != 'tex' echo "calling PdfLaTeX from a non-tex file" return '' end w let masterDir = getcwd() let masterTeXFile = g:master let masterBaseName = fnamemodify(masterTeXFile, ":t:r") if a:type == 'pdflatex' let pdflatex = 'pdflatex -synctex=1' . ' ' . masterTeXFile let g:bibtex = 'bibtex' let g:makeindex = 'makeindex' elseif a:type == 'lualatex' let pdflatex = 'lualatex -synctex=1' . ' ' . masterTeXFile let g:bibtex = 'bibtexu' let g:makeindex = 'texindy' elseif a:type == 'luajitlatex' let pdflatex = 'luajitlatex -synctex=1' . ' ' . masterTeXFile let g:bibtex = 'bibtexu' let g:makeindex = 'texindy' elseif a:type == 'xelatex' let pdflatex = 'xelatex -synctex=1' . ' ' . masterTeXFile let g:bibtex = 'bibtexu' let g:makeindex = 'texindy' endif if has('win32') || has('win64') if g:viewer == 'adobereader' let pdfclose = 'tasklist /fi "IMAGENAME eq AcroRd32.exe" /nh | findstr "AcroRd32.exe" > nul && echo exit | pdfdde --rxi' let execString = 'cd /d ' . masterDir . ' && ' . pdfclose . ' & ' . pdflatex else let execString = 'cd /d ' . masterDir . ' && ' . pdflatex endif else let execString = 'cd ' . masterDir . ' && ' . pdflatex endif execute 'silent! !' execString redraw! return '' endfunction function! BibTeX() if &ft != 'tex' echo "calling BibTeX from a non-tex file" return '' end w let masterDir = getcwd() let masterTeXFile = g:master let masterBaseName = fnamemodify(masterTeXFile, ":t:r") if has('win32') || has('win64') let execString = 'cd /d ' . masterDir . ' && ' . g:bibtex . ' ' . masterBaseName else let execString = 'cd ' . masterDir . ' && ' . g:bibtex . ' ' . masterBaseName endif execute 'silent! !' execString redraw! return '' endfunction function! MakeIndex() if &ft != 'tex' echo "calling MakeIndex from a non-tex file" return '' end w let masterDir = getcwd() let masterTeXFile = g:master let masterBaseName = fnamemodify(masterTeXFile, ":t:r") if has('win32') || has('win64') let execString = 'cd /d ' . masterDir . ' && ' . g:makeindex ' ' . masterBaseName else let execString = 'cd ' . masterDir . ' && ' . g:makeindex . ' ' . masterBaseName endif execute 'silent! !' execString redraw! return '' endfunction function! TeXworks() if &ft != 'tex' echo "calling TeXworks from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' if has('win32') || has('win64') if glob('C:/w32tex/share/texworks/TeXworks.exe') != '' let viewer = '"' . glob('C:/w32tex/share/texworks/TeXworks.exe') . '"' elseif glob('C:/texlive/*/tlpkg/texworks/texworks.exe') != '' let viewer = '"' . glob('C:/texlive/*/tlpkg/texworks/texworks.exe') . '"' else let viewer = 'TeXworks.exe' endif let execString = 'cd /d ' . masterDir . ' && echo ' . viewer . ' ' . masterPDFFile . ' | cmd' elseif has('macunix') let viewer = 'open -a TeXworks.app' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' else let viewer = 'texworks' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' endif execute 'silent! !' execString redraw! return '' endfunction function! SumatraPDF() if &ft != 'tex' echo "calling SumatraPDF from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:t") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' if has('win32') || has('win64') if glob('C:/Program Files/SumatraPDF/SumatraPDF.exe') != '' let viewer = '"' . glob('C:/Program Files/SumatraPDF/SumatraPDF.exe') . '"' elseif glob('C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe') != '' let viewer = '"' . glob('C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe') . '"' else let viewer = 'SumatraPDF.exe' endif let execString = 'cd /d ' . masterDir . ' && echo ' . viewer . ' -reuse-instance ' . masterPDFFile . ' -forward-search ' . currentTeXFile . ' ' . line(".") . ' | cmd' endif execute 'silent! !' execString redraw! return '' endfunction function! Preview() if &ft != 'tex' echo "calling Preview from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'open -a Preview.app' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! TeXShop() if &ft != 'tex' echo "calling TeXShop from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'open -a TeXShop.app' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! Skim() if &ft != 'tex' echo "calling Skim from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:t") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = '/Applications/Skim.app/Contents/SharedSupport/displayline' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . line(".") . ' ' . masterPDFFile . ' ' . currentTeXFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! Evince() if &ft != 'tex' echo "calling Evince from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'evince' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! FwdEvince() if &ft != 'tex' echo "calling FwdEvince from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:t") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'fwdevince' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' ' . line(".") . ' ' . currentTeXFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! Okular() if &ft != 'tex' echo "calling Okular from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:p") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'okular' let execString = 'cd ' . masterDir . ' && ' . viewer . ' --unique "file:' . masterPDFFile . '\#src:' . line(".") . ' ' . currentTeXFile . '" &' execute 'silent! !' execString redraw! return '' endfunction function! Zathura() if &ft != 'tex' echo "calling Zathura from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'zathura -s -x "vim --servername synctex -n --remote-silent +\%{line} \%{input}"' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' execute 'silent! !' execString redraw! return '' endfunction function! Qpdfview() if &ft != 'tex' echo "calling Qpdfview from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:t") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'qpdfview' let execString = 'cd ' . masterDir . ' && ' . viewer . ' --unique "' . masterPDFFile . '\#src:' . currentTeXFile . ':' . line(".") . ':0' . '" &' execute 'silent! !' execString redraw! return '' endfunction function! PdfViewer() if &ft != 'tex' echo "calling PdfViewer from a non-tex file" return '' end let masterDir = getcwd() let currentTeXFile = expand("%:t") let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' let viewer = 'pdfviewer' let execString = 'cd ' . masterDir . ' && ' . viewer . ' "file:' . masterPDFFile . '\#src:' . line(".") . ' ' . currentTeXFile . '" &' execute 'silent! !' execString redraw! return '' endfunction function! AdobeReader() if &ft != 'tex' echo "calling Adobe Reader from a non-tex file" return '' end let masterDir = getcwd() let masterTeXFile = g:master let masterPDFFile = fnamemodify(masterTeXFile, ":t:r") . '.pdf' if has('win32') || has('win64') if glob('C:/Program Files/Adobe/Reader */Reader/AcroRd32.exe') != '' let viewer = '"' . glob('C:/Program Files/Adobe/Reader */Reader/AcroRd32.exe') . '"' elseif glob('C:/Program Files (x86)/Adobe/Reader */Reader/AcroRd32.exe') != '' let viewer = '"' . glob('C:/Program Files (x86)/Adobe/Reader */Reader/AcroRd32.exe') . '"' else let viewer = 'pdfopen --rxi --file' endif let execString = 'cd /d ' . masterDir . ' && echo ' . viewer . ' ' . masterPDFFile . ' | cmd' elseif has('macunix') let viewer = 'open -a "Adobe Reader.app"' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' else let viewer = 'acroread' let execString = 'cd ' . masterDir . ' && ' . viewer . ' ' . masterPDFFile . ' &' endif execute 'silent! !' execString redraw! return '' endfunction noremap <expr> <C-K>f TypesetFile() noremap <expr> <C-K>b BibTeX() noremap <expr> <C-K>i MakeIndex() noremap <expr> <C-K>v ViewFile() ---- ***Windows の場合 [#kf0c55a9] タイプセットはデフォルトでは pdfpLaTeX を使用します.~ ビューアはデフォルトでは TeXworks を使用します.~ > |COLOR(#FFF):BGCOLOR(#070):CENTER:~ノーマルモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |<Ctrl-K> f|タイプセット| |<Ctrl-K> b|BibTeX| |<Ctrl-K> i|MakeIndex| |<Ctrl-K> v|プレビュー| < > |COLOR(#FFF):BGCOLOR(#070):CENTER:~コマンドラインモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |:Typeset pdfplatex <Enter>|タイプセットを pdfpLaTeX に変更| |:Typeset pdfplatex2 <Enter>|タイプセットを pdfpLaTeX2 に変更| |:Typeset pdfuplatex <Enter>|タイプセットを pdfupLaTeX に変更| |:Typeset pdfuplatex2 <Enter>|タイプセットを pdfupLaTeX2 に変更| |:Typeset pdflatex <Enter>|タイプセットを pdfLaTeX に変更| |:Typeset lualatex <Enter>|タイプセットを LuaLaTeX に変更| |:Typeset luajitlatex <Enter>|タイプセットを LuaJITLaTeX に変更| |:Typeset xelatex <Enter>|タイプセットを XeLaTeX に変更| |:Viewer texworks <Enter>|ビューアを TeXworks に変更| |:Viewer sumatrapdf <Enter>|ビューアを SumatraPDF に変更| |:Viewer adobereader <Enter>|ビューアを Adobe Reader に変更| |:TeXmaster main.tex <Enter>|マスターファイルを main.tex に設定| < ***OS X の場合 [#v2d90738] 動作未確認です.~ タイプセットはデフォルトでは pdfpLaTeX を使用します.~ ビューアはデフォルトでは Preview を使用します.~ > |COLOR(#FFF):BGCOLOR(#070):CENTER:~ノーマルモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |<Ctrl-K> f|タイプセット| |<Ctrl-K> b|BibTeX| |<Ctrl-K> i|MakeIndex| |<Ctrl-K> v|プレビュー| < > |COLOR(#FFF):BGCOLOR(#070):CENTER:~コマンドラインモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |:Typeset pdfplatex <Enter>|タイプセットを pdfpLaTeX に変更| |:Typeset pdfplatex2 <Enter>|タイプセットを pdfpLaTeX2 に変更| |:Typeset pdfuplatex <Enter>|タイプセットを pdfupLaTeX に変更| |:Typeset pdfuplatex2 <Enter>|タイプセットを pdfupLaTeX2 に変更| |:Typeset pdflatex <Enter>|タイプセットを pdfLaTeX に変更| |:Typeset lualatex <Enter>|タイプセットを LuaLaTeX に変更| |:Typeset luajitlatex <Enter>|タイプセットを LuaJITLaTeX に変更| |:Typeset xelatex <Enter>|タイプセットを XeLaTeX に変更| |:Viewer preview <Enter>|ビューアを Preview に変更| |:Viewer texshop <Enter>|ビューアを TeXShop に変更| |:Viewer texworks <Enter>|ビューアを TeXworks に変更| |:Viewer skim <Enter>|ビューアを Skim に変更| |:Viewer adobereader <Enter>|ビューアを Adobe Reader に変更| |:TeXmaster main.tex <Enter>|マスターファイルを main.tex に設定| < ***Linux の場合 [#q23aa2de] タイプセットはデフォルトでは pdfpLaTeX を使用します.~ ビューアはデフォルトでは Evince を使用します.~ fwdevince は [[Evince - TeX Wiki>Evince]] の fwdevince を使用します.~ GVim を使用するとエラーが発生しても表示されずに GVim が固まったように見える (x を入力して <Enter> を入力すると OK です) ので,コンソール版の Vim を使用することをおすすめします.~ > |COLOR(#FFF):BGCOLOR(#070):CENTER:~ノーマルモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |<Ctrl-K> f|タイプセット| |<Ctrl-K> b|BibTeX| |<Ctrl-K> i|MakeIndex| |<Ctrl-K> v|プレビュー| < > |COLOR(#FFF):BGCOLOR(#070):CENTER:~コマンドラインモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |:Typeset pdfplatex <Enter>|タイプセットを pdfpLaTeX に変更| |:Typeset pdfplatex2 <Enter>|タイプセットを pdfpLaTeX2 に変更| |:Typeset pdfuplatex <Enter>|タイプセットを pdfupLaTeX に変更| |:Typeset pdfuplatex2 <Enter>|タイプセットを pdfupLaTeX2 に変更| |:Typeset pdflatex <Enter>|タイプセットを pdfLaTeX に変更| |:Typeset lualatex <Enter>|タイプセットを LuaLaTeX に変更| |:Typeset luajitlatex <Enter>|タイプセットを LuaJITLaTeX に変更| |:Typeset xelatex <Enter>|タイプセットを XeLaTeX に変更| |:Viewer evince <Enter>|ビューアを Evince に変更| |:Viewer fwdevince <Enter>|ビューアを fwdevince に変更| |:Viewer texworks <Enter>|ビューアを TeXworks に変更| |:Viewer okular <Enter>|ビューアを Okular に変更| |:Viewer zathura <Enter>|ビューアを zathura に変更| |:Viewer qpdfview <Enter>|ビューアを qpdfview に変更| |:Viewer pdfviewer <Enter>|ビューアを PdfViewer に変更| |:Viewer adobereader <Enter>|ビューアを Adobe Reader に変更| |:TeXmaster main.tex <Enter>|マスターファイルを main.tex に設定| < **その他のプラグイン [#g8a1b1b6] -[[Vim-LaTeX]] -[[Automatic LaTeX Plugin for Vim (ATP)>ATP]] -[[neocomplcache & neosnippet>neocomplcache]] -[[latex-support.vim : LaTeX-IDE for Vim/gVim :http://www.vim.org/scripts/script.php?script_id=4405]] -[[platex-suite:https://github.com/lambdalisue/platex.vim]] -[[LaTeX Box:http://www.vim.org/scripts/script.php?script_id=3109]] --[[LaTeX-Box-Team/LaTeX-Box - GitHub:https://github.com/LaTeX-Box-Team/LaTeX-Box]] --[[vim-scripts/LaTeX-Box - GitHub:https://github.com/vim-scripts/LaTeX-Box]] --[[Latexmkとvim, vim-boxの設定:http://d.hatena.ne.jp/wal-neko/20101119/1290158352]] -[[auctex.vim:http://www.math.rochester.edu/people/faculty/cmlr/Latex/]] --[[vim-scripts/auctex.vim - GitHub:https://github.com/vim-scripts/auctex.vim]] -[[tex.vim : Indent file for TeX:http://www.vim.org/scripts/script.php?script_id=218]] --[[vim-scripts/tex.vim--Tanzler - GitHub:https://github.com/vim-scripts/tex.vim--Tanzler]] -[[vim-latex-omnifunc:https://github.com/igrep/vim-latex-omnifunc]] -[[vim-latex-live-preview:https://github.com/xuhdev/vim-latex-live-preview]] -[[Whizzy4Vim (WhizzyTeX for Vim):http://www.pakunet.jp/whizzy4vim]] -[[LaTeXをquickrunで楽に処理する:http://d.hatena.ne.jp/itchyny/20121001/1349094989]] -[[vim 快適な論文執筆環境の整備 -その1-:http://kuni255.blogspot.jp/2011/12/vim-1.html]] -[[vim 快適な論文執筆環境の整備 -その2-:http://kuni255.blogspot.jp/2011/12/vim-2.html]] -[[vim 快適な論文執筆環境の整備 -その3-:http://kuni255.blogspot.jp/2011/12/vim-3.html]] -[[VIMで日本語文章中の半角「,」を全角「,」に変える方法:http://ututel.blog121.fc2.com/blog-date-20130128.html]] -[[unite.vimとunite-outlineでlatexファイルの編集が楽になった:http://hinagishi.hateblo.jp/entry/2011/11/18/135701]] -[[Vimで保存時に自動的にTeXをコンパイル (適当編):http://blomott.mobi/rubyneko/entry%2CsCKhEg6WPUiQnldaTG1j9w%2C%2C%2C%2C.html]] -[[ファイルの変更を監視してmake:http://d.hatena.ne.jp/hakobe932/20081221/1229874843]] -[[TexのMakefileとvimの設定:http://bkc.g.hatena.ne.jp/hakobe932/20081211/1228975757]] -[[ftpluginのtex.vim:http://blog.mountrice.com/2009/10/tex-for-snow-leopard.html]] -[[Vim/TeXShop integration:http://reference-man.blogspot.com/2009/01/vimtexshop-integration.html]] -[[zencoding-vim:https://github.com/mattn/zencoding-vim]] --[[[TeX]記事一覧 - blob glob:http://d.hatena.ne.jp/cobodo/archive?word=*%5bTeX%5d]] ---[[zen-codingっぽくTeX(etc.):http://d.hatena.ne.jp/cobodo/20100416/1271408225]] -[[snipMate - TextMate-style snippets for Vim:https://github.com/msanders/snipmate.vim]] -[[snippetsEmu - An attempt to emulate TextMate's snippet expansion:http://www.vim.org/scripts/script.php?script_id=1318]] --[[TeXの図や表をsnippetsEmu.vimで簡単に入力出来るようにする:http://vim.g.hatena.ne.jp/y_yanbe/20080926]] -[[texファイルの更新を見て自動でコンパイルしてpdf開く:http://d.hatena.ne.jp/soh335/20111021/1319133018]] -[[texのerrorとかwarningとかの監視:http://d.hatena.ne.jp/soh335/20111223/1324610999]] --[[App::watcher:http://search.cpan.org/search?query=App%3A%3Awatcher]] --[[watchr:https://github.com/mynyml/watchr]] -[[Vim - ConTeXt wiki:http://sandbox.contextgarden.net/Vim]] -[[tex_autoclose.vim : TeX / LaTeX ftplugin to automatically close environments >http://www.vim.org/scripts/script.php?script_id=920]] -[[text editors « PhilTeX:http://www.charlietanksley.net/philtex/category/text-editors/]] --[[Vim for LaTeX, part 1:http://www.charlietanksley.net/philtex/vim-for-latex-part-1/]] --[[Vim for LaTeX, part 2:http://www.charlietanksley.net/philtex/vim-for-latex-part-2/]] --[[Vim for LaTeX, part 3:http://www.charlietanksley.net/philtex/vim-for-latex-part-3/]] --[[Vim for LaTeX, part 4:http://www.charlietanksley.net/philtex/vim-for-latex-part-4/]] -[[vim-live-latex-preview (LaTeX in (g)Vim with live update-as-you-type PDF preview « PhilTeX):http://www.charlietanksley.net/philtex/vim-live-latex-preview/]] -[[Writing LaTeX files with GVim « A blog about LaTeX, Linux and FreeBSD:http://alexkrispin.wordpress.com/2010/10/07/writing-latex-files-with-gvim/]] *SumatraPDF との連携 [#tf5a143c] **forward search [#j2d22939] SumatraPDF v1.9.4622 以上の場合はコマンドラインから forward search が可能です. 詳しくは,[[tex.vim>#y0b061e7]] または [[Vim-LaTeX]][[#SumatraPDF との連携 (forward search)>Vim-LaTeX#e0090c3d]] を参照してください. **inverse search [#b8f7bf28] inverse search は SumatraPDF の [設定(S)]-[オプション(O)...]-[逆順検索コマンドラインの設定] に C:\vim73-kaoriya-win32\gvim.exe -n --remote-silent +%l "%f" です. [[Vim-LaTeX]] で SumatraPDF の inverse search をする場合は,これとは異なる記述が必要です. 詳細は,[[Vim-LaTeX]][[#SumatraPDF との連携 (inverse search)>Vim-LaTeX#nefa91ff]] を参照してください. *Evince との連携 (forward and inverse search) [#p78ad52b] [[tex.vim>Vim#y0b061e7]] または [[Vim-LaTeX]][[#Evince との連携 (forward and inverse search)>Vim-LaTeX#j6ff1448]] を参照してください. *dviout との連携 (非推奨) [#yb1d17aa] [[dviout#forward and inverse search>dviout#ycc841a2]] を参照. **forward search [#i0a5c1b0] forward search については [[Vim-LaTeX]][[dviout との連携#forward search>Vim-LaTeX#g7a208c2]] を参照してください. **inverse search [#f8dee8e5] inverse search は dviout の [Option]-[Setup Parameters...]-[Common]-[src:] に C:\vim73-kaoriya-win32\gvim.exe^s -n --remote-silent +%d "%s" です. *pxdvi との連携 (forward and inverse search) (非推奨) [#z967afdc] [[Vim-LaTeX]][[#pxdvi との連携 (forward and inverse search)>Vim-LaTeX#e36989d2]] を参照してください. *使い方 [#j3d4339e] **折りたたみ [#ff31000b] Vim の一般的な折りたたみの操作に関しては [[Vim-users.jp - Hack #178: テキストを折り畳む – 操作編:http://vim-users.jp/2010/10/hack178/]] を参照してください. > |COLOR(#FFF):BGCOLOR(#070):CENTER:~メニュー [ツール(T)]|COLOR(#FFF):BGCOLOR(#070):CENTER:~ノーマルモード|COLOR(#FFF):BGCOLOR(#070):CENTER:~機能| |折畳み(F) -> 有効/無効切替(E)|zi|折りたたみを有効 ←→ 無効| ||zo|カーソル位置の折りたたみを開く| ||zO|カーソル位置の折りたたみを再帰的に開く| ||zc|カーソル位置の折りたたみを閉じる| ||zC|カーソル位置の折りたたみを再帰的に閉じる| ||za|カーソル位置の折りたたみを開く ←→ 閉じる| ||zA|カーソル位置の折りたたみを再帰的に開く ←→ 閉じる| |折畳み(F) -> 折畳みを開く(P)|zr|折りたたみを開く| |折畳み(F) -> 全折畳みを開く(O)|zR|全ての折りたたみを開く| |折畳み(F) -> 折畳みを閉じる(L)|zm|折りたたみを閉じる| |折畳み(F) -> 全折畳みを閉じる(C)|zM|全ての折りたたみを閉じる| < *Vim スクリプトの作成 [#q825b71f] -[[Vim エディターのスクリプトの作成: 第 1 回 変数、値、式>http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-1/]] -[[Vim エディターのスクリプトの作成: 第 2 回 ユーザー定義関数>http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-2/]] -[[Vim エディターのスクリプトの作成: 第 3 回 組み込みリスト>http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-3/]] -[[Vim エディターのスクリプトの作成: 第 4 回 辞書>http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-4/]] -[[Vim エディターのスクリプトの作成: 第 5 回 イベント駆動型のスクリプト作成と自動化>http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-5/]] -[[Vimスクリプト基礎文法最速マスター - 永遠に未完成:http://d.hatena.ne.jp/thinca/20100201/1265009821]] *設定に関するリンク [#b7ef8622] -[[SanRin舎 » vi/Vim:http://sanrinsha.lolipop.jp/blog/2011/04/vi%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF.html]] -[[vim でシェルコマンドを実行した際の Press ENTER or type command to continue を非表示に:http://d.hatena.ne.jp/koyudoon/20120131/1327959087]] -[[Vimのメモ:http://ogawa.s18.xrea.com/fswiki/wiki.cgi?page=Vim%A4%CE%A5%E1%A5%E2]] *チュートリアル [#d82a6a51] -[[Interactive Vim tutorial:http://www.openvim.com/tutorial.html]]