Vim Part28
■ このスレッドは過去ログ倉庫に格納されています
>>225 あのさ,すぐ上のレスに書いてあることも読めんのか? ちっとは検索くらいしろ せめて「これこれこういう語句で検索しましたが欲しい情報が見当たりません」 くらい書けるだろ? 「Mac OS X Vim Ctrl+U 効かない」 で一番上に挙がった候補↓ https://qiita.com/furu8ma/items/7e421da98680d1c4c0f8 二番目↓ https://stackoverflow.com/q/29712392 ことえりの設定を変えるらしいぞ もう一度いうがググれ。まずは。 >>226 コレですね Enter2回がどうも慣れずにWindows風の確定になるように変更しました でも結局Optionを元に戻すしかなくて両立は無理なんですね そんな血眼ってわけじゃなくて学生だから時間あるんだよ ド素人です 対となるカッコの自動挿入をオンにしてるのだが、カッコ内の入力が住んだ後にできるだけ少ない手数でカッコの後ろに出る方法を考えてる カッコが入れ子であることも考慮すると、挿入ノーマルモードに移行して ・f 適当な文字 ・A ・w で移動するっていうのが普通ですかね? >>231 俺は最初の方法かな →int main@ ( →int main(@) void<Ctrl+O>f( →int main(void)@ みたいな編集方式 Vimのステイタスラインに地震情報を出すプラグインがあるけど、VS Codeにもある? 緊急地震速報鳴るんだからそんな余計なプラグイン要らん むしろなぜVimに緊急地震速報を出そうと思ったのか データーセンターだと自分のスマホを持ち込めず自由にネットにアクセスできないし、GUIの入ってないサーバー作業中にもしものことがあってもいいようにかな spacevim なんてあるんだな しかも「spacemacs に触発されて」ときた 正直、流行らんだろ emacs は lisp の実行環境だから他を寄せ付けない拡張性があって、それに Vim の、これもまた他を寄せ付けない超高速入力を合体させようという試みとして凄い価値のあるプロジェクトなわけだが、spacevim は目的わからん Lots of Irritating Stupid Parentheses の略 tanasinnの元ネタのひとつ ようやくvimに慣れてきたところだけどプラグイン管理ってどれ入れればいいの neobundleだかdein.vimだか知らんが設定ファイル自体が煩雑って バニラ状態で事足りてるから入れなくてもいいか minpackですかね でもvimdoc-jaとiceberg.vimしか入れてないのであんま参考にならんかも minpackでは入らないプラグインとかあるみたいだし。 ftditectで 「.origの場合は.origではなくその直前の拡張子を本来の拡張子として処理する」 みたいなことできませんかね。 >>249 ありがとうございます。 できそうです。 あと すいません。もう一つ質問なんですが 複数のfiletypeに対して同一のftpluginを実行したい場合、 例えばlexとyaccとcに対してはset cindentを適用するといったようなことはできますか :help usr_41.txtは読んだのですが あまり助けにならなさそうでした 私が理解していないだけで書いてあるかもしれません。どうかよろしくおねがいします。 >>250 au BufNewFile,BufRead *.{c,lex,yacc} set cindent とかこんな感じでできないかな >>251 わがままでもうしわけないんですが それだと例えば新たに拡張子.Cをfiletype cと見做すように設定したときに 二重に変更する必要がありますよね 元の*.C→set filetype=cと、その*.C→set cindent これは予期せぬ不具合を生じる原因になると思うので できたらfiletypeで判別したいです なんとなくですが&filetypeを使って場合分けできないかなとか思っています。 >>252 au FileType lex,yacc setl cindent >>251 からの改良点は ・autocmd イベントに FileType を使うことで拡張子問題に対応 ('filetype' オプションに追従) ・filetype=c では同梱プラグインで cindent が設定されるため自分の vimrc には書かないことに ・ファイルタイプ特有の設定はバッファローカルで設定するべき。よって setl[ocal] これだけだと lex,yacc ファイルを編集中に手動で :setl ft=txt とかしたときに cindent 設定が残り続けることになるが、問題になることは少ないだろう 余談だが .C はデフォルトでは C++ ファイルとして認識されるようだ >>249 こんなのがあったのか(´・ω・`) サンクス >>254 知ってたわけじゃないけどvim ftdetect gzでググったら一発で見つかった filetypeがnerdtreeのときのみ以下のキーマップを割り当てたいのですがどうすればよいのやら... 理想: 'R'キーを1回入力するとnerdtreeで定義済みの'R'キーを2回入力したことになる 妥協: '<C-r>'を入力するとnerdtreeで定義済みの'R'キーを2入力したことになる 理想を実現しようと以下のように書いたけど, E21: Cannot make changes, 'modifiable' is off と怒られてしまいます... ``` augroup nerdtree_custom autocmd! augroup END autocmd nerdtree_custom filetype nerdtree set modifiable autocmd nerdtree_custom filetype nerdtree set write autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R RR ``` >>257 nerdtreeのバッファで R のマップを調べる :map R すると n R *@:call nerdtree#ui_glue#invokeKeyMap("R")<CR> と表示されるのでこれをコピペして、繰り返し回数を指定: autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R 2:call nerdtree#ui_glue#invokeKeyMap("R")<CR> >>258 ちょっとよくないな これだと 2R とかで E16: Invalid range ってなる このコマンドの場合は任意の回数指定出来なくても問題なさそうだけど あと何故かカーソルが下に移動してしまう 単に :call を二回でよかったみたい: autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R :call nerdtree#ui_glue#invokeKeyMap('R')<CR>:call nerdtree#ui_glue#invokeKeyMap('R')<CR> >>258 解決策だけでなく,手順までご教授頂き,本当にありがとうございます... Vimと共に歩んでいきます >>259 おっしゃる通り,今回のコマンドは任意回数指定できなくても問題のないものでしたので, 全然気にしていませんでした... それでもやはりコマンドが任意回数指定できないのは気になるので,:call を2回呼ぶことにしますね. >>261 読点が全角カンマだから俺の書き込みかと思ったわ 緊急地震速報をVIMで受信出来るってどこかで読んだのだがどうやるんですか! >>237 今更だけど、そんな環境で勝手にプラグイン入れたり勝手に地震速報の情報を受信するのは問題ないの? これって地震が起きた後の地震速報であって揺れが到達する前に発せられる緊急地震速報じゃないと思うんだがどう? ls結果をvimで表示したらファイル名の前後にゴミが入るんだけどどうすれば [01;35maaa.jpg[0m [01;35mbbb.jpg[0m ls *jpg | vim -でこんなのが lsのオプションで色表示の解除なかったかな?man lsで調べて >>269 >>270 の言う通りlsコマンドに色付けをしない旨のオプションを付ける(GNU lsの場合--color=none)のが最も手っ取り早い。 汎用性を持たせる(manコマンドなどの出力結果でも同様の現象が起こる)にはcol -bxをパイプで噛ませるのがいいと思う。 今 調べてみたら Ansifiler(http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php )とか ansi2txt(https://sourceforge.net/projects/ansi2txt/ ) というのもあるみたい。これはcolコマンドを使う方法が,本来のcolコマンドの目的ではなくその仕様を利用している不安定な方法に対して まさにその目的(ANSI色制御綴りを除去する)ことに特化していることが利点だな。 ただし両方とも野良ビルドする必要があるが……。 >>269 lsの結果に色付いてると思うけどそのカラー設定が混ざってる $ type lsをやって「ls は `ls --color' のエイリアスです」になるはず alias ls='ls --color'の記述が~/.bashrcになくても/etc/bash.bashrcにあると思う エイリアスは\で無効にできるから\ls *jpg | vim -なら大丈夫 deopleteを導入したくてtomlファイルに以下を追加したのですが ``` [[plugins]] repo = 'Shougo/deoplete.nvim' let g:deoplete#enable_at_startup = 1 ``` 以下のエラーメッセージが表示されます. [dein] Invalid toml format: /c/Users/hoge/.vim/dein/userconfig/plugins.toml [dein] Text.TOML: Illegal toml format at L39:`g:deoplete#enable_at_startup = 1':630. この書き方のどこがillegalなのでしょうか... >>269 "ANSI color code(余計な[0m)を削除 command! DeleteAnsi %s/\[[0-9;]*m//g ^[はCtrl+v+ESCで入力ね Vim初心者ですが、ファイルタイプ毎にタブインデントとスペースインデントを変えるってどうやりますか? 調べてもaugroupでスペースの数を変えるのしか出できません C言語の時には、表示スペース8のタブインデント、Pythonのときには表示スペース4のスペースインデント...といったやつです >>275 setlocal expandtab setlocal noexpandtab 言語別の設定をするには、ftplugin以下にファイルタイプ名.vimを作ってそこで設定すればいいはずなんだけど、あんまり有効活用されてないよね(´・ω・`) >>278 ファイル分けると管理が面倒 できればvimrcだけで済ませたいよ >>269 alias の問題だろ。 つまり、ls でなく、/bin/ls としろ。 もしくは ¥ls でもよい。 >>280 円記号なんか付けたらcommand not foundになると思うんですけど(名推理) >>276 ありがとうございます! 以下のように記述することで無事,エラーメッセージなしでtomlファイルを読み込むことができました. ``` [[plugins]] repo = 'Shougo/deoplete.nvim' hook_add = ''' let g:deoplete#enable_at_startup = 1 ''' ``` Windows 10 + Git Bash + Vim 8の環境で,Neovimは使わずにdeoplete.nvimを使用したいと考えていますが, 下記のエラーメッセージが表示されます. neovimを導入せずに解決する方法はありますでしょうか... ```エラーメッセージ Messages maintainer: Bram Moolenaar <Bram@vim.org> [vim-hug-neovim-rpc] failed executing: pythonx import neovim [vim-hug-neovim-rpc] Vim(pythonx):Traceback (most recent call last): ``` 参考までに, ・plugins.tomlの内容 ・vim --version の結果(>>284 ) を以下に載せます. ```plugins.toml [[plugins]] repo = 'Shougo/deoplete.nvim' hook_add = ''' let g:deoplete#enable_at_startup = 1 ''' [[plugins]] repo = 'roxma/nvim-yarp' [[plugins]] repo = 'roxma/vim-hug-neovim-rpc' ``` ```vim --version (1/2) VIM - Vi IMproved 8.1 (2018 May 17, compiled May 31 2018 11:16:13) Included patches: 1-22 Compiled by <alexpux@gmail.com> Huge version without GUI. Features included (+) or not (-): +acl +farsi +mouse_sgr -tag_any_white +arabic +file_in_path -mouse_sysmouse -tcl +autocmd +find_in_path +mouse_urxvt +termguicolors -autoservername +float +mouse_xterm +terminal -balloon_eval +folding +multi_byte +terminfo +balloon_eval_term -footer +multi_lang +termresponse -browse +fork() -mzscheme +textobjects ++builtin_terms +gettext +netbeans_intg +timers +byte_offset -hangul_input +num64 +title +channel +iconv +packages -toolbar +cindent +insert_expand +path_extra +user_commands -clientserver +job +perl/dyn +vertsplit +clipboard +jumplist +persistent_undo +virtualedit +cmdline_compl +keymap +postscript +visual +cmdline_hist +lambda +printer +visualextra ``` ```vim --versions(2/2) +cmdline_info +langmap +profile +viminfo +comments +libcall +python/dyn +vreplace +conceal +linebreak +python3/dyn +wildignore +cryptv +lispindent +quickfix +wildmenu +cscope +listcmds +reltime +windows +cursorbind +localmap +rightleft +writebackup +cursorshape -lua +ruby/dyn -X11 +dialog_con +menu +scrollbind -xfontset +diff +mksession +signs -xim +digraphs +modify_fname +smartindent -xpm -dnd +mouse +startuptime -xsmp -ebcdic -mouseshape +statusline -xterm_clipboard +emacs_tags +mouse_dec -sun_workshop -xterm_save +eval -mouse_gpm +syntax +ex_extra -mouse_jsbterm +tag_binary +extra_search +mouse_netterm +tag_old_static system vimrc file: "/etc/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/etc" f-b for $VIMRUNTIME: "/usr/share/vim/vim81" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/include/ncursesw -march=x86-64 -mtune=generic -O2 -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 Linking: gcc -L. -pipe -fstack-protector -pipe -Wl,--as-needed -o vim.exe -lm -lncursesw -liconv -lacl -lintl -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl, --enable-auto-image-base -fstack-protector-strong -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -ldl -lcrypt ``` Cで #include < のときだけ <> 補完したいんだけど、なにかいい方法ありますか >>281 どうせ円記号を全角で入れたんだろ(適当) spacemacs (とか spacevim?) がある今、Vimを好むかEmacsを好むかの違いは Vim script と elisp のどちらがより高い拡張性を持ってるかの違いになったわけだが、みなはどう思う インサートでキーをホームにマップするとインデント無視して行頭まで行くけど、インデント無視しない方法ありますか 【実現したいこと】 Git-bash標準のvimでdeoplete.nvimによる補完を有効にする 【現状】 deoplete.nvimによる補完が効かない 【環境】 - Windows 10 - Git-Bash (C:\Program Files\git-bash.exe) - Vim 8.1 (C:\Program Files\Git\usr\bin\vim.exe) - Python 3.6.5 (C:\Program Files\Python36\python.exe) - Windowsの環境変数: C:\Program Files\Python36\, C:\Program Files\Python36\Scripts\ - dein.vimを使用 続きは>>293 【行ったこと】 1. chocolateyをインストール 2. コマンドプロンプト(管理者権限)にて > choco install neovim nvim.exeの場所はC:\tools\neovim\Neovim\bin\nvim.exe 3. vim上で:echo has("python3")が0であることを確認 4. $HOME/.vimrc に以下の内容を記述 set pythonthreedll=set pythonthreedll=/c/program\ files/python36/python36.dll 5. vim上で:echo has("python3")が1であることを確認 6. $HOME/.bashrc に以下の内容を記述 export PYTHONPATH=/c/program\ files/python36/lib/site-packages 7. vim上で:python3 import neovim をすると以下のエラーが出た ModuleNotFoundError: No module named 'msgpack' 続きは>>294 8. そこで,[https://github.com/neovim/python-client/issues/292 ]を参考に コマンドプロンプト(管理者権限)にて, > pip3 uninstall msgpack > pip3 uninstall neovim > pip3 install msgpack-python > pip3 install neovim を実行 9. vim上で:python3 import neovim をすると以下のエラーが出た ModuleNotFoundError: No module named 'greenlet' 10. neovimは/c/program\ files/python36/lib/site-packages に存在するが, neovimと依存関係のgreenlet, pyuvは$HOME/appdata/roaming/python/python36/lib/site-packagesに存在することを確認した そのため,greenlet, pyuv関連フォルダ,ファイルを/c/program\ files/python36/lib/site-packagesに移動した 11. vim上で:python3 import neovim をしてもエラーメッセージは表示されなくなった 12. plugins.tomlに以下の内容を記述 [[plugins]] repo = 'Shougo/deoplete.nvim' hook_add = ''' let g:deoplete#enable_at_startup = 1 ''' [[plugins]] repo = 'roxma/nvim-yarp' [[plugins]] repo = 'roxma/vim-hug-neovim-rpc' 13. vimを再起動し,上記のプラグインをインストールしたが,deoplete.nvimによる補完が働かないことを確認した _,r='' /i ,/;;;''"´ ̄ ̄``'‐ー''フ ( V;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;く_,ッ, 'フ,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ (/lヾ、ヘ、;;;;;;;;;;;;;;;;;;;;;;;_/ ' !,ィTi'' `'''l,∩-ー ''' ノ l じ' 'ノ;;;;;ヒニ´ l ,-ー''フ三ヨ ,=ヽ_,-l_,,/:::l´ ヽ l l^'-v-ー'''^:::!__ニ | (ヨ)、、_;;;;r=''l' l / ̄ ̄'--t-tt'´ /`''ー,- 、__」 ヾ、 __/ヽ、__/ ヽ、_/ヽ ヽ、, `'-ッ' ヾ-'^ > `ヽノ ⊂,,_,,/ お前らってvimの基本操作覚えるのにどれくらいかかったの あえてvimをテキストエディタとして使う天邪鬼と違って選択の余地がない場合は辛い 老害だの文句言いながら使ってたらなぜかvimtutor程度は覚えてたから困る >>296 Vimに親でも殺されたのか? コンピュータ使うまえに日本語を使えるようになろうぜ >>296 無理してvim使う必要ないんだぜ? 俺も同じこと思ったが、vimに親でも殺されたのか? vimtutorでカバーされてる範囲を覚えたんなら十分だろ 他人にVimを勧める気は毛頭ないが(面倒くさいので)、 もし突然Vimが使えなくなったら(or使用を禁止されたら)、 俺はプログラマを廃業するしかないね 俺はLinuxやるならvimは必須だって授業でやらされたけど登竜門じゃなくなったのか こっちはnanoの存在知らんし設定弄るのに避けては通れないとかで テキストエディタにvimを強要されたのではなくてあくまでLinuxの基礎としてだから状況違うが ビジュアルモードで範囲指定した部分を他の文字に置き換えるにはどうやるの? あかさたなはまやらわたかはや の14文字を選択してたとして、 ふじこ の3文字に置き換えたい あかさたなはまやらわたかはや を選択して rを押して文字(ふ)を入力すると ふふふふふふふふふふふふふふ になってしまう 最近microって言う、めっちゃ普通のキーバインド使えるエディタがあるらしい >>305 ありがとう xiをsだけで出来るって事? >>306 cでもよし visualモードのsとcは同じ 俺はsはめったに使わないので :sort コマンドをマップしてる >>307 どうもありがとうございました! あと、範囲指定した状態でpでペーストしたらヤンクした内容に置き換えてられるんですね 数字の上にカーソルを合わせた状態で何かのキーを押せば1つづつ増減できたと思うんんですが、どのキーを押すんでしょうか? しばらくvimを使わないとすぐに使い方忘れてしまいます。 同じ置換でもsubstituteだったりreplace面倒だから統一してくれない? sとrどっちがどっちか分からなくなるってことだろう そんなの慣れだからひたすら入力するしかない substituteは代替でreplaceは交換らしい 確かにrやRコマンドはあくまで文字の入れ替えだけだな ていうかaとiが対になってるってのもなんだかなぁと思う。 appendとinsertだっけ? うーん。 単語の頭文字ならまだいいじゃない。 記号が混ざるとカオスだわ 先頭のニュアンスを含む文字記号: I, +, -, 0, ^, ' 前へ進むニュアンスを含む文字記号: l, n, ;, + Vimでカーソルの位置を記憶する設定ってなんであんなにややこいんだろう set savecursorpos みたいに一発で設定できればいいのに ^や$での移動は正規表現思いだせってことなんだろ なんでこいつらを頭とケツの意味にしたのか知らんが 貼り付けのpがpasteじゃなくてputだってのが衝撃だわ >>319 英語配列では^と$が隣り合ってるからかな と勝手に思ってる 押しにくいから^と$は<leader>+hと<leader>+lにしてる bashだと空白で始まる履歴や履歴の重複を回避できるけどvimにもあるのかな その場で履歴を編集できたらいいんだけど Vim8.xで環境変数がない場合の既定の文字列を設定するって実現できますか? シェルで言うなら${ENVVAR:-defval}みたいな感じです $ echo ${ENVVAR:-defval} →defval $ ENVVAR=newval $ echo ${ENVVAR:-defval} →newval 数十行の各行の頭に一文字+空白を入れる、みんなならどうやるの? 一文字は同じ文字の場合もあるし、連番の場合もある。 入れる文字がどこかに書かれてるならCtrl+vで貼るだけだけど ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる