quickrun.vim でバッファの Prolog コードを実行できるようにした
そういう Pull Request を送ってマージされました。
述語が多くなってくると REPL で確認するのも面倒になってくるかと思いますが、
そういう時はおもむろに新しいバッファを作って :setf prolog
して :QuickRun
すると実行した結果が別バッファに出ます。
main :- write('hello'),nl, write('prolog'),nl, % ,halt. % 明示的に halt してる場合もしてない場合も必ず終了するのでご心配なく (-g halt (SWI) や --query-goal halt (GNU) しているため) . :- initialization(main).
他にも例えば
にあるようなテストコード (test.pl) を :QuickRun
するだけで、Vim にいながらテスト結果がわかるので嬉しいです。
Windows Subsystem Linux で動かしてる端末版 Vim のバッファの内容をクリップボードにコピーしたい
ので書いた。 さっと書いた雑クオリティなので GitHub - kana/vim-fakeclip: Vim plugin: Provide pseudo "clipboard" registers 使うのが良いんだと思います。 help ちらっと見たら WSL にも対応してるっぽいので、OS 間で統一して扱いたいとかいう人はそちらをどうぞ。
追記 (2018/09/18):range に対応したのでビジュアルモードで :'<,'>Clip したらその箇所だけコピーされるようになった。これ以上ブログに転載するのも面倒なので最新版はこちらから
let s:is_wsl = has('unix') && isdirectory('/mnt/c/') if s:is_wsl command! -bar -range=% Clip <line1>,<line2>call s:cmd_clip() function! s:cmd_clip() range abort let windir = s:windir() if windir is# '' echoerr 'windows directory not found' return endif let clip = join([windir, 'System32', 'clip.exe'], '/') let str = join(getline(a:firstline, a:lastline), "\n") call system(clip, str) endfunction function! s:windir() abort return get(filter([ \ '/mnt/c/Windows', \ '/mnt/c/WINDOWS', \], {_,p -> isdirectory(p)}), 0, '') endfunction endif