Hatena::ブログ(Diary)

C++でゲームプログラミング

2012-01-06

[]Vim で言語に関係なくコメントアウト行う

さて、各言語によっていコメントアウトの方法は違うので、複数の言語を扱っている場合にコメントアウトの方法を間違えてしまうことがあると思います。

そんな時に caw.vim プラグインを使用することで言語を意識せずにコメントアウトを行うことが出来ます。


[プラグイン]

NeoBundle "git://github.com/tyru/caw.vim.git"

[キーマッピング]

gci文の頭からコメントアウト
gcI行頭からコメントアウト
gca行末にコメントアウト
gcoカーソル行の下にコメントアウト
gcOカーソル行の上にコメントアウト

gco と gcO 以外はビジュアルモードでもマッピングされているので複数行のコメントアウトもスムーズに行うことが出来ます。

詳細は :help caw-introduction や :help caw-keymappings を参照下さい。


[_vimrc]

" コメントアウトを切り替えるマッピング例
nmap <Leader>c <Plug>(caw:I:toggle)
vmap <Leader>c <Plug>(caw:I:toggle)

[対応している言語]

:help caw-supported-filetypes

abaqus abc acedb ada ahdl amiga aml ampl ant apache apachestyle asm68k asm asn
aspvbs atlas autohotkey autoit automake ave awk basic b bc bdf bib bindzone
bst btm caos catalog c cfg cg ch changelog cl clean clipper cmake conf config
context cpp crontab cs csc csp css cterm cupl csv cvs dcl debchangelog
debcontrol debsources def diff django docbk dns dosbatch dosini dot dracula
dsl dtd dtml dylan ecd eiffel elf elmfilt erlang eruby eterm expect exports
fetchmail fgl focexec form fortran foxpro fstab fvwm fx gdb gdmo geek
gentoo-package-keywords' gentoo-package-mask' gentoo-package-use' gnuplot
gtkrc haskell hb h help hercules hog html htmldjango htmlos ia64 icon idlang
idl indent inform inittab ishd iss ist jam java javascript jess jgraph
jproperties jproperties jsp kconfig kix kscript lace lex lftp lifelines lilo
lisp lite lotos lout lprolog lscript lss lua lynx m4 mail make maple masm
master matlab mel mf mib mma model moduala.  modula2 modula3 monk mush muttrc
named nasm nastran natural ncf netdict netrw nqc nroff nsis objc ocaml occam
omlet omnimark openroad opl ora otl ox pascal passwd pcap pccts perl pfmain
php phtml pic pike pilrc pine plaintex plm plsql po postscr pov povini ppd
ppwiz procmail progress prolog psf ptcap python python qf radiance ratpoison r
rc readline rebol registry remind rexx robots rpl rtf ruby sa samba sas sass
sather scheme scilab screen scsh sdl sed selectbuf sgml sgmldecl sgmllnx sh
sicad simula sinda skill slang sl slrnrc sm smarty smil smith sml snnsnet
snnspat snnsres snobol4 spec specman spice sql sqlforms sqlj sqr squid st stp
strace svn systemverilog tads taglist tags tak tasm tcl terminfo tex text
plaintex texinfo texmf tf tidy tli trasys tsalt tsscl tssgm uc uil vb verilog
verilog_systemverilog vgrindefs vhdl vim viminfo virata vo_base vrml vsejcl
webmacro wget winbatch wml wvdial xdefaults xf86conf xhtml xkb xmath xml
xmodmap xpm2 xpm xslt yacc yaml z8a

これで各言語のコメントアウトが分からなくて悩む必要はなくなると思います。

rye2368rye2368 2012/01/06 22:44 この記事と関係のないことですが質問させて下さい

http://d.hatena.ne.jp/osyo-manga/20111012/1318377040
こちらの記事にあるUniteとquickrunの連携についてですが、g:quickrun_configの設定がよく分かりません。
自分なりにquickrunのhelp等を参照して設定しましたが、一覧表示はできても実行すると何も起きません。
よろしければg:quickrun_configのサンプルを載せていただけないでしょうか。

osyo-mangaosyo-manga 2012/01/07 02:54 コメントありがとうございます。

>一覧表示はできても実行すると何も起きません。
unite.vim で一覧が出力されているのならば、g:quickrun_config の設定は問題ないと思います。
実行するというのは quickrun.vim が設定した値で実行されない、ということでしょうか。
g:quickrun_compile_command[&filetype] に設定がされているか、:execute ":QuickRun ".g:quickrun_compile_command[&filetype] で実行がされるのかを確かめてみてください。

rye2368rye2368 2012/01/07 22:21 回答ありがとうございます。
確かめてみましたが、設定名である「c/gcc」しか表示されませんでした。
私は以下のように設定しました。
let g:quickrun_config = {
\ 'c/gcc': {
\ 'type': 'c',
\ 'command': 'gcc',
\ 'exec': ['%c %o %s -o %s:p:r', '%s:p:r %a', 'rm -f %s:p:r'],
\ 'tempfile': '%{tempname()}.c',
\ },
\ 'c/vc': {
\ 'type': 'c',
\ 'command': 'cl',
\ 'exec': ['%c %o %s /nologo /Fo%s:p:r.obj /Fe%s:p:r.exe > nul',
\ '%s:p:r.exe %a', 'del %s:p:r.exe %s:p:r.obj'],
\ 'tempfile': '%{tempname()}.c',
\ },
\}
私自身typeの使い方がおかしいと感じていますが、様々なパターンを試行し、一覧表示できたのはこの設定だけでした。

osyo-mangaosyo-manga 2012/01/07 22:54 わたしの環境でも上記の設定で試してみましたが問題なく unite.vim で選択でき、その設定でコンパイル実行を行うことが出来ました。

確認ですが『:QuickRun を行っても設定したコンパイラで実行がされない』という事なのでしょう
か。
下記のコマンドでも試してみてください。
:execute ":QuickRun ".g:quickrun_compile_command[&filetype]

rye2368rye2368 2012/01/07 23:16 実行できました。
私が何か根本的な勘違いをしていたようです。
最後まで丁寧に説明していただきありがとうございました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証