vimのmatchitでhtml内のの中で括弧に飛べなくなる

投稿者: Anonymous vim7.4でmatchit(同梱版)プラグインを有効にすると html内のタグの中のかっこで%を押しても、カーソルが飛びません。 なぜでしょうか? 解決 同梱版でしょうか? そちらだとhtmlは飛べない可能性があります。 https://github.com/tmhedberg/matchit こちらを試して貰えますか。 回答者: Anonymous

Vim の Syntasticがうまく動作しない

投稿者: Anonymous Vimでjavascriptのシンタックスチェックをしたくて、scrooloose/syntasticを導入したのですが、正しく動作しません。 以下の画像のように:SyntasticInfo javascriptでチェックすると、Available checkersもCurrent enabled checkersも空になってしまいます。 jshintはnpmでインストールし、パスは以下のようになっています。 $ which jshint /Users/***/.nodebrew/current/bin/jshint また、.vimrcは以下のように設定をしています。 let g:syntastic_mode_map = { ‘mode’: ‘active’, ‘active_filetypes’: [‘javascript’], ‘passive_filetypes’: [‘html’] } let g:syntastic_auto_loc_list = 1 let g:syntastic_javascript_jshint_exec=’/Users/***/.nodebrew/current/bin/jshint’ let g:syntastic_javascript_checkers = [‘jshint’] syntastic_javascript_jshint_execに関しては、jshintのパスが通っていれば、設定不要であるという認識ですが、以下を参照して、一応設定しています。 Syntastic doesn’t detect JSHint as an available checker なにか、情報をお持ちの方がいらっしゃいましたら、ご教示いただけると幸いです。 解決 Vimのパスの問題でした。 :echo $PATHでパスを確認したところ、jshintのパスが設定されていませんでした。 以下を参考にzshのPATHを.zshenvに設定したところ正しく動作しました。 why $PATH in vim and…(Continue Reading)

Vimで置換前に置換対象を一括で表示する方法。

投稿者: Anonymous Vimで置換処理をする時に正規表現などを使ってるとちゃんと書けてるか自信がない時がよくあります。 そういう時に置換対象がどれか画面上に表示されてる分だけハイライト表示をしてくれる機能が欲しかったのですが、探し方が悪かったようで見つかりませんでした。 たとえば :%s/foo/bar/gcとした時に一つ目のfooが反転でハイライト表示されてる時に、 同時に他の画面内にあるfoo全てがハイライト表示するようにしたいです。 どうすればそのような動作に設定できるでしょうか? 解決 検索結果ハイライトする前提で、検索してから置換。 /foo でfooがハイライトされてる状態で、 :%s//bar/gc ってするとハイライトされてるヤツらを確認しながらbarに変えれます。 検索結果のハイライトは、~/.vimrcにset hlsearchを追加してください。 つか、検索ハイライト設定した後に :%s/foo/bar/gc ってするだけで所望の動きになりますね… 回答者: Anonymous

描画を禁止したり解除する方法

投稿者: Anonymous Vim Scriptで画面の書き換えを禁止する方法と解除する方法を教えてください。 大量の文字列を入力すると重たいので描画を止めておきたい。 秀丸マクロでいうとdisabledrawとenabledrawに相当することがやりたいです。 http://hidemaruo.mydns.jp:81/helpsite/hidemac/html/110_MacroStatement_disabledraw_enabledraw.html 解決 set lazyredraw で、不要な再描画を避けられます。元に戻すには、 set nolazyredraw とします。 参考リンク: http://vim-jp.org/vimdoc-ja/options.html#%27lazyredraw%27 回答者: Anonymous

ctagsで-Rを使っても再帰的にタグが作られない

投稿者: Anonymous ctagsを使ってタグファイルを作りvimから利用したいと考えています ctags -Rを使えば再帰的にタグが作られて、下のディレクトリにあるファイルからでもタグジャンプができるようになるはずです しかしなぜかうまくいきません。 プロジェクトのルートディレクトリでctag -Rを実行した後で下のディレクトリに移動してファイルを開き、タグジャンプしようとすると E433: No tags file E426: tag not found: common_logger_config というエラーメッセージが表示されます このプロジェクトはpythonで書かれており、ctagsもpythonに対応しています 解決 Vimは’tags’オプションの値をカンマ区切りで参照して見つかったtagsファイルからタグを探します。 現在の設定は:set tags?で確認できます。 デフォルト値は./tags,tagsです。(./tags,./TAGS,tags,TAGSの場合もありますがここでは便宜上./tags,tagsで説明します) 1つめの./tagsは今編集しているファイルの在るディレクトリにtagsがあればそのファイルからタグを探します。 2つめのtagsはカレントディレクトリにtagsがあればそのファイルからタグを探します。 そうなんです。デフォルト値だとプロジェクトルート下のサブフォルダがカレントディレクトリの場合にプロジェクトルートのtagsファイルを参照しないんです。 ではどうするかというと、「上向き検索」指定をします。 ‘tags’にファイル指定時に末尾に;を指定するとそのディレクトリから上に遡ってファイルを探します。 具体的にはset tags=./tags;,tags;と設定します。こうすることによって、プロジェクトルート下のサブフォルダにいてもプロジェクトルートのtagsファイルを参照するようになります。 詳しくはhelpを参照下さい。 (:h ‘tags’→file-searchingでタグジャンプ→/^2)で検索) 回答者: Anonymous

新規ファイルを開いた時にテキストファイルの内容を挿入したい

投稿者: Anonymous 空の新規ファイルにtemplate.txtの内容を1行目に挿入したいです。 template.txtの中身はこの3行、cの最後に改行はありません。 a b c 試したコマンド :execute ‘0r template.txt’ もうひとつ :0r !cat template.txt どれも最後に改行が含まれてしまい、4行になってしまいます。 template.txtと同じ内容になるように挿入する方法を教えてください。 解決 1行目を削除すれば大丈夫です。 read template.txt | 1 delete _ 回答者: Anonymous

Atom editorでvimでコマンドを実行したときのようなバッファを実現する

投稿者: Anonymous vimで:! echo helloのようにコマンドを実行するとvimの一時的に作られたBufferに結果が表示されます これと同じようなことをatomで実現できないのでしょうか? TextEditorとTextBufferを使うのだと思うのですが、どうすればいいのかわかりません 解決 ググったらこんなのがありました。 最新版パッケージをインストールして使います。 https://atom.io/packages/run-command 回答者: Anonymous

vimの繰り返し操作を使って文字列を削除する方法

投稿者: Anonymous 以下のように記述されたファイルがあり ln -sf ~/dev/dotfiles/.profile ~/ ln -sf ~/dev/dotfiles/.pryrc ~/ ln -sf ~/dev/dotfiles/.vimrc ~/ ln -sf ~/dev/dotfiles/.zshrc ~/ /devの部分を削除して、以下の状態にしたいと思います。 ln -sf ~/dotfiles/.profile ~/ ln -sf ~/dotfiles/.pryrc ~/ ln -sf ~/dotfiles/.vimrc ~/ ln -sf ~/dotfiles/.zshrc ~/ vimの繰り返し操作.を使い、devの上でdw,x,j,.してみたんですが、これだと最後のxでの一文字分の削除が繰り返されてしまいました。 もちろん置換を使って一括で変換するのが一番だとは思うのですが、繰り返し処理を使う場合はどのようなキーストロークを使えばいいのでしょうか? 解決 df/ 次の / まで削除 4x 4文字削除 vwd ヴィジュアルモードで単語一つとカーソル位置の文字を選択状態にして削除 などでしょうか。 レコーディング(マクロ)を使うならば、 qa dwx j q で 下の行への移動までレジスタ…(Continue Reading)

Vimでオプションの存在を確認しつつ設定する関数やコマンド

投稿者: Anonymous 複数環境で同じ.vimrcを使っているのですが、Vimのバージョンが違ったりしてオプションが存在しないとsetするときにエラーが起きます。 オプションごとにいちいちif exists(‘+option’)するのが面倒なのでcall setoption(‘option’)などとすればオプションの存在を確認しつつ設定してくれる関数(またはコマンド)が欲しいのですが、そのようなことは可能でしょうか? または他に何か良い方法はありますか? 解決 存在しないオプションを無視する程度なら、:silent!でエラーメッセージを表示させないのもアリかと思います。 例: :silent! set conceallevel=2 http://vim-jp.org/vimdoc-ja/various.html#:silent! 回答者: Anonymous

deoplete.nvim 選択されているindexを取得したい

投稿者: Anonymous set completeopt+=noselect set completeopt-=preview let g:deoplete#enable_at_startup = 1 let g:deoplete#auto_complete_delay = 0 let g:deoplete#auto_complete_start_length = 1 inoremap <expr><C-h> deoplete#smart_close_popup().”<C-h>” inoremap <expr><BS> deoplete#smart_close_popup().”<C-h>” inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> function! s:my_cr_function() abort return deoplete#close_popup() . “<CR>” endfunction my_cr_functionにおいてnoselectなら deoplete#close_popup() . “<CR>” 候補のいずれかが選択されていたら deoplete#close_popup() としたい. help見てもselectedを取得するインターフェースが見つからなかった. 追記 解決した. NVIM v0.3.8 Build type: Release LuaJIT 2.0.5 Compilation: /usr/bin/cc…(Continue Reading)

gvim の :terminal にマウスで貼り付けしたい

投稿者: Anonymous Windows 10 を使用しています。gvim で :terminal を起動するとデフォルトで cmd.exe が起動します。そこにマウスでテキストの貼り付け(クリップボードからの貼り付け)を行いたいのですが、テキストを別アプリでコピーした後、gvim上のターミナル上で右クリックを押しても何の反応もありませんでした。これは仕様なのでしょうか? 期待した動作としては、vim で :terminal を起動した時と同じ動作。つまりは、右クリックでテキストの貼り付けが行えるか、gvim上のバッファで右クリックをした時の動作。つまりは、「貼り付け」含むコンテキストメニューの表示がされるかが期待した動作となります。 今のところ、<C-W>”+ で貼り付けを行っていますが、マウスでやりたいときもあり(Vimmerとしては怒られそうですが) 設定等で期待した動作に近づけられるのであればやりたいとおもっています。 解決 tmap <RightMouse> <C-W>”+ を .gvimrc に記述することで自己解決しました。 回答者: Anonymous

Vim にペーストすると改行の数が多くなってしまいます

投稿者: Anonymous 秀丸やWindowsメモ帳やブラウザのコピペのテキストをPuTTYのVimでコピペすると(右クリック)改行の数が多くなってしまいます。Vimの設定をすべて空白にすると普通にコピペされます。 設定はこちらです ~/.vimrc 1 set number 2 set title 3 set ambiwidth=double 4 set tabstop=4 5 set expandtab 6 set shiftwidth=4 7 set smartindent 8 set list 9 set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% 10 set nrformats-=octal 11 set hidden 12 set history=50 13 set virtualedit=block 14 set whichwrap=b,s,[,],<,> 15 set backspace=indent,eol,start 16 set wildmenu 17 set…(Continue Reading)

neovimでの補間確定時、後ろに続く文字が削除されてしまう

投稿者: Anonymous C++のソースコードの入力時、vim-lsp、aleでエラー表示を行い、補間にはclangをvim-lsp経由で使用しています。あまり思い当たる設定変更をした記憶がないのですが、昨日から補間の候補をtabで選択し、C-pやEnterで確定した場合やEscでインサートモードを抜けた際に、補完した文字列の後ろに続く文字が削除されてしまうようになりました。 たとえば、std::vector<std::vector<std::pair<int, in>>>と入力し、nの後ろを補間すると、>>が消えて、std::vector<std::vector<std::pair<int, int>になってしまいます。 ターミナルエミュレータにはlilytermを使用していますが、alacrittyでも同様の状態になります。vim hoge.cpp -u NONEで起動すると補間は出来ませんが、問題も再現出来ませんでした。OSはantergosを使用しています。この問題についてどなたかご教授いただけますでしょうか。以下はinit.vimをそのまま貼り付けました。どうぞよろしくお願いいたします。 “————————- ” GENERAL SETTINGS “————————- set history=10000 ” disable motion by mouse set mouse= ” set clipboard^=unnamed,unnamedplus set noswapfile “————————- ” PLUGINS “————————- ” automatic installation of vim-plug itself if empty(glob(‘~/.config/nvim/autoload/plug.vim’)) silent !curl -fLo ~/.config/nvim/autoload/plug.vim –create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall endif call plug#begin(‘~/.config/nvim/plugged’) “…(Continue Reading)

VimでBackspaceを押したときにインデントにカーソルが戻るようにする

投稿者: Anonymous こんにちは vimでbracketsやbracesをオートインデントを有効にした状態で自動補完する の質問をした者です。 vimでautoindentされた行でBackspaceを押したときにその上の行のインデントにカーソルが戻るようにする方法はないのでしょうか? ひょっとすると、autoindentではスペースが入力されているように見えているだけで、その行に非空白文字が入力されなかった場合は何も入力されていないということになるということなのでしょうか? 図で表すと (例1) {|} //最初の状態。delimitMateによって補完されているためこの状態になる ここで改行します。delimitMateの設定によって下のようになります。(上記質問のリンク参照)(例2) { | } もう一度改行するとautoindentを有効にしているため下の例のようになります。(例3) { | } このときにBackSpaceを2回押すと下記のようにカーソルが戻ってしまいます。(例4) { | } これをAtom.ioのように (例5) { | } 上のようにスペース4文字のところにカーソルが戻るようにするにはどうすればいいのでしょうか? ちなみに、vimrcは set expandtab set backspace=indent,eol,start set shiftwidth=4 set tabstop=4 set autoindent となっています。 解決 vimrcに以下のコードを追記して試してみてください inoremap <SID>(pre-CR) X<BS> imap <CR> <SID>(pre-CR)<Plug>delimitMateCR 連続で改行したときにインデントを削除しないマッピングです。 (以下、2015/05/04追記) unaristさんのご指摘通り、Vimでautoindentを設定していると、連続で改行したときインデントが削除されます。:h ‘autoindent’ http://vim-jp.org/vimdoc-ja/options.html#‘autoindent’ より引用:…(Continue Reading)

cppmanをtmuxの左ペインに開き、閉じる際にレイアウトを崩さない方法

投稿者: Anonymous neovimとtmuxを使用しています。c++でコードを書く際にcppmanでドキュメントを確認したく思ったので、https://stackoverflow.com/a/30373736を参考に autocmd FileType cpp set keywordprg=cppman command! -nargs=+ Cppman silent! call system(“tmux split-window -bh cppman ” . expand(<q-args>)) autocmd FileType cpp nnoremap <silent><buffer> K <Esc>:Cppman <cword><CR> autocmd FileType cpp vnoremap <silent><buffer> K <Esc>:Cppman <cword><CR> をinit.vimに追加して利用しています。しかしこの方法では、もともと横並びに2つのペインが並んでいる場合には (0、1が元のペイン、1からcppmanを実行すると2にcppmanが開く) cppman利用前 cppman利用中 cppman利用後 _________ __________ _________ | | | | | | | | | | |0|…(Continue Reading)

Homebrew で Vim がインストールできない

投稿者: Anonymous プログラミングの問題ではないのかもしれませんが…質問させていただければと思います。 Homebrew で Vim をインストールしようとすると 下記のようなエラーが出て、インストールする事が出来ません。 $ brew install vim –with-lua ==> Downloading https://github.com/vim/vim/archive/v7.4.1589.tar.gz Already downloaded: /Library/Caches/Homebrew/vim-7.4.1589.tar.gz ==> ./configure –prefix=/usr/local –mandir=/usr/local/Cellar/vim/7.4.1589/share/man –enable-multibyte –with-tlib=ncurses –enable-cscope –with-compiledby=Homebrew –enable-luai ==> make Last 15 lines from /Users/akihiroyajima/Library/Logs/Homebrew/vim/02.make: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -Os -w -pipe -march=native -mmacosx-version-min=10.11 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/term.o term.c /usr/bin/clang -c -I. -Iproto…(Continue Reading)

VimShellでのウィンドウ移動

投稿者: Anonymous タイトル通りです VimShellを:splitしてから開くとC-wと矢印でウィンドウ間移動できなくなります。 ウィンドウ間移動するには他の方法が必要なんでしょうか?それとも特殊な設定が必要なんでしょうか? 詳しい方回答お願いします。 解決 通常、VimShellを開始すると挿入モードになっているので、ノーマルモードの操作である<C-w>矢印が使えないということなのだと思います。ですので、VimShellのウインドウで<Esc>を押して、ノーマルモードに移行すればそのあとは、ウインドウ間移動の操作ができるはずです。(VimShellのドキュメントを見ましたが、ノーマルモードの<C-w>は特に使用されてないようです) 下記のコードをvimrcに追加すれば、<Esc>を押さなくてもウインドウ間の移動の操作ができるようになりますのでお試しください。(ただしVimShellの挿入モードの<C-w>(単語削除)の操作はできなくなります) autocmd FileType vimshell call s:vimshell_settings() function! s:vimshell_settings() inoremap <buffer><C-w> <Esc><C-w> endfunction 回答者: Anonymous

Atom Vimコマンド(テキストオブジェクト)について

投稿者: user25930 AtomでVimを使って開発をしています。 AtomのVimでテキストオブジェクトを使用したく、 「vim-surround」パッケージをインストールしました。 「ciw」等のテキストオブジェクトは使用できるようになったのですが、 “”で単語を囲む「ysiw”」が効きません。 何か設定方法等あればお教えいただけると幸いです、よろしくお願いしますm(_ _*)m 【追記】 コメントでご指摘頂きました内容を、コメントにも書かせていただきましたがこちらにも追記します。 ・Atomエディタに入れたプラグイン  vim-surround(https://atom.io/packages/vim-surround) 解決 わかりきったところも含めて整理するとこうなります. Atom も Vim もエディタの名前です. 「Atom で Vim を使う」というのは.この場合 Atom にパッケージを導入して Vim のようないろんな機能やキーマップを実現するというもので,具体的には vim-mode-plus を使っておられるということでした.なお, Vim-mode-plus については作者によるチュートリアルもあるので[1] 参考になると思います. テキストオブジェクト というのは Vim の持っている概念(あるいはそれを実現するコマンド)のことです.たとえば, c (change) というオペレータと,iw (inner word) というテキストオブジェクトを組み合わせることで, ciw と打つことでその単語を変更することができます.これは, Vim ではプラグイン無しで使えるコマンドです.他のエディタ上でVim を模したプラグイン(今回の vim-mode-plus とかevil とか)を使う場合でも,同様に追加のプラグインを必要とせずに使えることが期待されます. vim-surround というVim のプラグインがあって,これは例えば ys+iw+” で単語をクオートで囲えるようにするものです(真ん中の…(Continue Reading)

IdeaVimでのウインドウサイズの変更方法

投稿者: Anonymous 環境 Windows 10 IntelliJ IDEA 2017.1.4 IdeaVim 0.48 vimでは下記のようなキーマップを設定し、ウインドウサイズの調整を行っています。 nnoremap <S-j> <C-w>10- nnoremap <S-k> <C-w>10+ nnoremap <S-l> <C-w>10> nnoremap <S-h> <C-w>10< しかしこの設定はIdeaVimでは動作しませんでした。設定方法はないでしょうか? :actionでIDEの機能を呼び出せるようなので(:action GotoClass 等)、何らかのactionを使えば実現できそうなのですが。 解決 どっちもできません。 IdeaVIMには<C-W +>や<C-W ->は未実装で,IntelliJはエディタのリサイズをコマンドでできません(アクティブなツールウィンドウをリサイズするStrech to Left/Right/Top/Bottomしかないです)。 回答者: Anonymous

vimのバッファの切替

投稿者: Anonymous vimでバッファを使っていますが、1の次が3で開かれてしまいます。 また、バッファの切替のために nmap <C-j> <C-^> とマッピングしていますが、3つ以上開いているとき押しても特定の2つを行き来するだけとなってしまいます。 思うにNerdTreeのプラグインを使っているのが原因でないかと思うのですがよくわかりません。 (vimrcで起動時に開くようにしています。) 対処方法を教えていただけないでしょうか。 どうぞよろしくお願いいたします。 解決 <C-^> は、代替バッファ(簡単に言うと、直前にいたバッファ)を開くコマンドなので、2 つを行き来するだけなのは正しい挙動です。順番にアクセスしたい場合は :bnext を使ってみてください。 nnoremap <silent> <C-j> :<C-u>bnext<CR> 回答者: Anonymous

vimのsubstitute関数で先頭からカンマまでを削除したい

投稿者: Anonymous やりたいこと vimでsubstitute関数を使い,文頭からはじめの,までを削除したいです. (例えば,WIP,$HOME/Desktop/WIPという文字列を$HOME/Desktop/WIPに変換したい.) うまくいかないこと Vimを起動した直後に次のようなコマンドを打つと,期待しない動きになります. :echo substitute(“WIP,HOME/Desktop/WIP”, “^.{-1,},”, “”, “”) WIP,HOME/Desktop/WIP 特定の文字列を前提とした,次のような例は動きます. :echo substitute(“WIP,HOME/Desktop/WIP”, “^WIP,”, “”, “”) HOME/Desktop/WIP :echo substitute(“WIP,HOME/Desktop/WIP”, “^W.P,”, “”, “”) HOME/Desktop/WIP 以下は他に試したが期待しない動きになったパターンです. :echo substitute(“WIP,HOME/Desktop/WIP”, “^.{-},”, “”, “”) WIP,HOME/Desktop/WIP :echo substitute(“WIP,HOME/Desktop/WIP”, “^.+,”, “”, “”) WIP,HOME/Desktop/WIP :echo substitute(“WIP,HOME/Desktop/WIP”, “^.{-},”, “”, “”) WIP,HOME/Desktop/WIP :echo substitute(“WIP,HOME/Desktop/WIP”, “^.+,”, “”, “”) WIP,HOME/Desktop/WIP 一応次のパターンであれば動きましたが,「1文字以上+,」ではありません. :echo substitute(“WIP,HOME/Desktop/WIP”, “^.*,”,…(Continue Reading)

Windows Kaoriya vim で Chocoratey でインストールした Anaconda3 Pathが通らない

投稿者: Anonymous Window7 32Bit の Kaoriya vim で *.py を開くと以下のような3つのエラーがでます。 Anaconda3 を Chocoratey でインストールし (C:toolsAnaconda3) ユーザー環境変数に Pathを加えても状況が変わりません。 Vim側の設定が不足していると考えています。 アドバイスの程お願い致します。 環境変数は以下です エラ-は以下です function jedi#init_python の処理中にエラーが検出されました: 行 7: Error: jedi-vim failed to initialize Python: jedi-vim requires Vim with support for Python 2 or 3. (in function jedi#init_python[3]..128_init_python, 行 52) E370: ライブラリ python27.dll をロードできませんでした E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできませんでした. 解決…(Continue Reading)

preview windowに全ての文字列が表示されない

投稿者: Anonymous complete-itemsのinfoキーの値に改行を含まない折り返し4行以上の長い文字列を書き込むと、 preview windowに表示された時に先頭から3行分の文字列しか表示されません。 set previewheigthを実行すると12と表示されました。 preview windowに長い文字列だったとしても表示させる方法を教えてください。 ” vimrc最小内容 fun! CompleteSample(findstart, base) if a:findstart let line = getline(‘.’) let start = col(‘.’) – 1 while start > 0 && line[start – 1] =~ ‘a’ let start -= 1 endwhile return start else let res = [] ” 当方の環境は15インチディスプレイを使っておりターミナルを最大化していないので、先頭の「あ」から最後の「い」まで折り返して4行分になります。 call add(res, {“word”: “test”, “info”:…(Continue Reading)

macのvimでの行末コマンドについての質問です。

投稿者: Anonymous mac vimをさわり初めたばかりで、書籍で勉強中です。 行末に移動するショートカットが$マークになっていますが、移動しません。Shiftキー+$では移動できるのですが、面倒です。$マークだけでは移動できないのでしょうか。宜しくお願い致します。 解決 $のキーをShiftを押さないで押すと4です。 4を押しているので末尾に移動しなくて当然です。 4が使えなくなると、4xなどxを4回繰り返せなどの命令ができなくなってしまうので、それはそれで混乱しやすい環境になってしまうと思います。 回答者: Anonymous

ウィンドウを分割して新しくバッファを作るときにバッファ番号が被る

投稿者: Anonymous 3つにウィンドウを分割してそれぞれ異なるバッファを作成したかったのですが、1番目と2番目のウィンドウのバッファ番号が同じでした。 :split enew :split enew :echo bufnr(‘%’) ” 2 :wincmd w :echo bufnr(‘%’) ” 2 :wincmd w: :echo bufnr(‘%’) ” 1 splitとenewを分けて書けばそれぞれ異なるバッファ番号になりました。 :split :enew :split :enew :echo bufnr(‘%’) ” 3 :wincmd w :echo bufnr(‘%’) ” 2 :wincmd w: :echo bufnr(‘%’) ” 1 何故、前者のコードでは重複したバッファ番号が存在するのでしょうか? 解決 :enew は新しいバッファを作成するコマンドです。また :split は引数で与えられたバッファをウィンドウを分割して開くコマンドであり、引数に与えたコマンドを実行するコマンドではありません。 そのために前者の例では、ウィンドウを分割して enew という名前のバッファを開いていることになります。また2回めの :split enew…(Continue Reading)

vim終了時にイベントを起こしたい。

投稿者: Anonymous :wqとかでvimを終了した際に 「今日もお疲れ様」などをshellのsayコマンドを通して 鳴らしたいのですが、どうすれば良いでしょうか? 解決 以下のようなコードをvimrcに記述すればできると思います。 下記の例はWindowsでエクスプローラを起動する例ですが、Macなら「start explorer.exe」の部分を「open say “今日もお疲れ様”」のような感じ(未検証)でコマンドを記述すれば出来ると思います。 augroup quitcmd autocmd! autocmd VimLeave * :silent !start explorer.exe augroup END 回答者: Anonymous

vimで行末でない空白文字を表示する方法

投稿者: Anonymous 最近vimを使い始めました。 行中の半角空白を表示したいのですが、検索しても行末の空白を表示する方法しか見当たりません。 行末ではない空白を表示する方法は無いのでしょうか。 検索などで表示させるのではなく、listcharsで指定したときのように、違う文字・記号を割り当てる方法はないのでしょうか。 解決 v7.4.710のパッチが当たっている環境であれば、listcharsにspaceを指定してやれば任意の文字や記号に置き換えができるようです(以下は_に置き換える例)。 set listchars+=space:_ 本家SOの関連質問・回答(1) 上記のパッチが当たっていない環境でも、以下のような設定でハイライトさせる方法もありました。 highlight WhiteSpace cterm=underline ctermfg=lightgreen ctermbg=4 match WhiteSpace / +/ ctermfg,ctermbgはコンソールで利用する場合の設定なので、GUI(gvim)を利用する場合はguifg,guibgに置き換えてください。 本家SOの関連質問・回答(2) 回答者: Anonymous

vimのカラースキームに関して

投稿者: Anonymous deinでプラグインを入れてvimにカラースキームを設定してみたのですが、移動して戻ると文字以外の部分が赤くなります。 違うカラースキームで試したり、VMで違う環境を作って試してみましたが同じ現象が起きます。 ググってみても同じ現象の投稿が全くありません。 解決方法ご存知の方いましたら、大事なお時間を少し頂戴して、ご教授いただければ幸いです。 実行環境として、Windows の WSL を使用しています。 .dein.tomlの中身です。 # clipboard 2 [[plugins]] 3 repo = ‘kana/vim-fakeclip’ 4 5 [[plugins]] 6 repo = ‘w0ng/vim-hybrid’ 以下は.vimrcの内容です。 ” deinがインストールされるディレクトリの指定 let s:dein_dir = expand(‘~/.cache/dein’) “<- dein によってプラグインがインストールされるディレクトリ let s:dein_repo_dir = s:dein_dir . ‘/repos/github.com/Shougo/dein.vim’ ” deinがインストールされているかをチェック インストールされていなかったらdeinをダウンロードしてくる if &runtimepath !~# ‘/dein.vim’ if !isdirectory(s:dein_repo_dir) execute ‘!git clone https://github.com/Shougo/dein.vim’…(Continue Reading)

「漢字《よみがな》」にマッチするパターン

投稿者: Anonymous Vim-KaoriYa 8.0.39 (64bit) を使用しています。  吾輩《わがはい》は猫《ねこ》である。名前《なまえ》はまだ無い。 のように漢字の後に括弧書きで読み仮名が書かれているShift_JIS(cp932)の文章があり、それをVimで  <吾輩|わがはい>は<猫|ねこ>である。<名前|なまえ>はまだ無い。 のように置換編集したいのですが、漢字《よみがな》にマッチするパターンがわからず困っています。 Vim-KaoriYaでは連続する漢字や平仮名、片仮名がそれぞれ1単語と見なされる(ように見受けられる)ので、<.{-1,}>《.{-1,}》で行けるかと思ったのですが、最短一致させているにも関わらず何故か 吾輩《わがはい》 は猫《ねこ》 である。名前《なまえ》 の3つにマッチしてしまいます。 何故このような結果になるのでしょうか。正しくマッチさせるにはどのようなパターンにすれば良いでしょうか。 なお、読み仮名が振られている漢字の直前に別の漢字がある場合(焼肉定食《ていしょく》のような)は考えなくて良いものとします。 解決 raspbian jessie vim 7.4.488 にて、 %s/([一-龠]*)《([^》]*)》/<12>/g で置換できましたが、焼肉定食《ていしょく》も <焼肉定食ていしょく> になってしまうと思います。 回答者: Anonymous

gvimでOmniSharpを使おうとすると”‘omnifunc’ は設定されていません”と出る

投稿者: Anonymous タイトルのとおりですが、直接設定したあとも補完がされません。 UnityとVisualStudio2008でプロジェクトを作成して試しましたが、両方とも同じ症状です。 どうしたら直るのかご教授ください。 質問の内容が足りない場合、ご指摘ください。 至らない点あると思いますが、よろしくお願いします。 環境 windows7 kaoriya-gvim 32bit python 2.7.9 32bit Unity 4.5.5p5 vimrc(抜粋) OmniSharp NeoBundleLazy ‘nosami/Omnisharp’, { ‘autoload’: {‘filetypes’: [‘cs’]}, ‘build’: { ‘windows’: ‘MSBuild.exe server/OmniSharp.sln /p:Platform=”Any CPU”‘, ‘mac’: ‘xbuild server/OmniSharp.sln’, ‘unix’: ‘xbuild server/OmniSharp.sln’, } } neocomplete let g:acp_enableAtStartup = 0 let g:neocomplete#enable_at_startup = 1 let g:neocomplete#enable_smart_case = 1 let g:neocomplete#sources#syntax#min_keyword_length =…(Continue Reading)