vim Part 6©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>685 そうなんですね、疑問がスッキリしました。 オススメされたディストリを入れてみます。 ありがとう。 Cのシンタックスハイライトやインデントくらいなら公式のVimに付いてくるはず UbuntuにデフォルトインストールされているVimはtiny版だと思うから、huge版をインストールし直してやればいい。正確なパッケージ名までは知らんが公式リポにあるはず Ubuntu使っているならvim-gtk3を入れとけばいいんじゃないかと思う gtk3(huge)を入れたんだけど自動インデントされません。 tiny消したりしても変化なし、ハイライトはされてます。 >>690 .vimrcにset cindentって書けば有効化できる 動作とか詳しくはググって >>691 cindentオプションはC言語のインデントプラグインで自動的に有効化(バッファローカル)されるので、普通は手動で :set することはない >>690 vimrcを作成済みなら、その末尾に filetype plugin indent on の一行を追加して、いったんVimを終了してからC言語ファイルの編集を始めてみて >>692 Cでインデント効きました。 嬉しい!ありがとうございます。 patch ファイルを開いている場合に、下記例でいうと src/foo.c にジャンプしたいです 単に gf とすると "a/" もパスの一部と解釈されてしまいジャンプできません diff --git a/src/foo.c b/src/foo.c 今は泥臭いですが a にカーソルを持っていき xx <C-w> f で開いています (単に xxgf だとバッファが保存されていなくて開けない) isfname あたりで "a/" を無視するような設定や、 もう少し短いキーストロークで実現する方法はあるでしょうか vim右下の行列表示で 7,105-71となっているとき 右の71は半角1,全角2として 左の105は半角1、全角3として計算しているようです。 UTF8なら左、Shift_JISなら右の数字を見ると1行のデータ量が分かるいいということであってますか? 香り屋さんのを仕事で使ってるんだけど ctrl-;はやっぱ割り当てられないよね [キーが遠くて小指が痛いのんだけど、どのキーで妥協すべき? >>698 英語配列だとキーひとつ分左なんだよね、[って。 >>699 タブ入力する時に使うから割当て変えるの凄いと思った >>701 タブ入力はC-v,Tabかな。あんま使わないから 基本プログラミングとかしない。メモ帳と小遣い帳 linux で vim を使っています。 今、6行目の4列目にカーソルがあるとして、 2行目から4行目の範囲の文字列を外部コマンドに標準入力を通して送り、 コマンド処理において標準出力に出力された文字列をカーソルの位置に挿入したいです。 コマンドラインモードで :2,4! コマンド とすると、2行目から4行目が消され、2行目にコマンドが出力した文字列が挿入されます。 そうではなく、カーソルの位置に挿入したいのですが、可能でしょうか。 >695 遅レスですが、まんまやりたいことができました ありがとうございました ただ、当たり前ですが path から探すので 自分のフォルダ構成だと patch ファイルと同じディレクトリに遷移する必要がありました そこで下記のマップをして改良してます nnoremap ,gf :cd %:h<CR>:call gf#user#do("gf", "n")<CR> 一文字ずつ間にデリミタを入れるように置換したい。 [例] 1749064 --> 1,7,4,9,0,6,4 正規表現を使って一発で置換できるだろうか? :s/\v(\d)(\d)/\1,\2/g これを2回適用すればできたけど、なんか不様。 >>705 先読みで :s/..\@=/&,/g vimの先読みは \@= と書き、その直前の正規表現(この場合二つめの .)がその場所で一致するかどうかを見る ちなみに & は一致した文字列全体 >>705 試してないけどこれでもいけるかも s/\d\ze\d/&,/g vimの先読み後読みって覚えづらいのよね…… おれ先に(?=)とかで覚えちゃったから余計に >>706 >>707 でできました。 ありがとうございました。 先読みなどという仕組みがあるのですね。 興味深いので調べてみます。 ryanoasis/vim-deviconsを入れるとscrooloose/NERDTreeの表示がおかしくなります。 画像のfolderの中にfolder1〜5とfile1〜5が入っているんですが、ファイルだけがなぜか4マス分右にインデントされてしまいます。 vim-deviconsのオプションでフォルダにもアイコンを付ける設定をすると、フォルダも4マス分右にずれるので、ファイルと並びがそろうんですが、左のスペースが気になります。 左に詰めるにはどういう設定をしたらよいですか? iTrem2でフォントはCicaフォントを使っています。 https://i.imgur.com/Ru8H3M7.jpg https://i.imgur.com/GQUhbpO.jpg 自己レス Xuyuanp/nerdtree-git-plugin これの影響でした 正規表現にも方言があるから面倒だよな grepのman見るまで基本や拡張があるなんて知らんかったし vimの置換に手を焼いてたら原因がエスケープの有無とかほんと 指定した正規表現の量指定子やエスケープ、クラス、グループなんかをそれぞれ色分けして表示してくれるといいのにね。 そうすれば、エスケープし忘れている文字とかも一発で視認できる。 編集が済んでファイルを :bd で 閉じているのですが、 この時にtabは閉じないようにできないでしょうか? tab 毎に カレントディレクトリを変えているのでやや困っています。 >>718 https://thinca.hatenablog.com/entry/20111204/1322932585 " タブページを常に表示 set showtabline=2 " gVimでもテキストベースのタブページを使う set guioptions-=e 後:bdだと:ls!では表示されるから俺は:bw使ってる >>719 ,720 ありがとうございます。 720 の plugin が やりたいことっぽいので試してみます。 8.1のターミナルサポートってなんのこと? :terminalとはまた違うターミナル? C-pでと入力補完ができるけどまさかC-x C-fでパス補完までできるとは vimに標準でemacsじみた操作があるとか何この初見殺し Windows7でkaoriya版vimを使って言語の勉強をしています 普段は漢字入力をするとファイルの文字コードがcp932になっており Windowsはそれで自然だと思うし不便なかったのですが Go言語はutf-8のソースファイルでないとコンパイルが通らないため 「拡張子goのファイルを新規作成した時だけ自動でファイルエンコードが utf-8になる」という設定をしたいです どの設定ファイルをどういじれば実現できるでしょうか windowsはデフォルトだと %userprofile%\_vimfiles が設定ファイル autocmd FileType go setlocal fileencoding=utf8 >>729 _vimrcファイルを作っていたのでそこにその通り追加したら_出来ました ありがどうございます 「The VimL Primer」という本を読んでいるのですが、 その中に autoload/mpc/autoload/mpc.vim というディレクトリ構造が登場します。 autoload ディレクトリの下に更に autoload ディレクトリを置くのは無駄ですよね? vundle でプラグインをインストールすると、 .vim/bundle/<そのプラグイン名>/ftdetect というように、ftdetect ディレクトリがこんな所に作られますが、 その中身を .vim/ftdetect ディレクトリにコピーしないと、これは機能しませんよね。 それとも、vundle の設定の一環として .vimrc に何か書く事で、 わざわざコピーしなくても機能させるようにするのが普通なのでしょうか。 Vundleが~/.vim/プラグイン名 をrtpに追加してくれるから普通はそのままで動くと思うけどなあ 他の設定とかプラグインでftdetectが上書きされてるとか? >>733 rtp変数にどのようなパスが設定されていようと、 .vim/ftdetect ディレクトリ内の *.vim ファイルしか読みとってくれないのですが、 これは異常なのですか? そういうものだと思っていました。 .vimrc 設定ファイルを見直してみましたが、なにが悪さをしているのか見当がつきません。 プラグインも vundle を使って vim-mql5 と vim-surround の2つをインストールしているだけです。 ftdetect が上書き(?)されるような設定というのは、例えばどのようなものがあるでしょうか? >>734 例えばrtpに~/.vim/vundle/vim-mql5が入ってるなら、その下にある ftdetect/*.vim は読み込まれるはず。 :scriptnames しても vim-mql5 以下のファイルは出てこない? ttps://github.com/rupurt/vim-mql5 をみると拡張子は .mqh か .mq5 の場合だけファイルタイプ設定するみたいだけど、そうなってるよね? 問題が解決しました。 アドバイスのおかげです。 filetype plugin indent on は vandle#end の後に書かないといけないのですね。 vubdle 導入時にどこかのブログから基本設定をコピペしてきて、 そこに後は入れたいプラグインをvundle#begin と vundle#end で挟んで書くだけとあったので、 そのままコピペした設定の後ろ (filetype plugin ... の後ろ) に追加していました。 vundle が何をやっているのかとか、filetype の仕組みとか、色々勉強になりました。 >>737 https://github.com/VundleVim/Vundle.vim これのQuick Startの.vimrcのサンプルぐらいは読んでおくことをすすめる Vundleで必要な設定がコメントされてる それとVundleはもうメンテされてないから早いうちに別のプラグインに移行しておくと楽かも https://github.com/junegunn/vim-plug vim-plug はVundleと設定やコマンドが殆ど同じで、プラグインのアップデートを並列処理で行ってくれるために高速 >>738 ありがとうございます。 参考にさせていただきます。 filetype を学んだつもりでしたが、まだまだ未熟のようでした。 >>738 が薦めてくださった vim-plug を使ってみましたが、 また filetype 絡みで分からない事が出てきました。 ~/.vim/plugged ディレクトリに vim-plug でインストールするプラグインを入れるとします。 それとは別に、~/.vim/foo ディレクトリに自作のテスト用プラグインを入れたいと思います。 そこで、~/.vim/foo/ftdetect/bar.vim に *.bar ファイルを開いた時に実行させたい処理を autocmd で書きました。 問題は .vimrc の書き方です。 set rtp+=~/.vim/foo call plug#begin ('~/.vim/plugged') ... call plug#end () というように、plug#end の前に rtp を追加しておくと、問題なく bar.vim が読み込まれます。 しかし、 call plug#begin ('~/.vim/plugged') ... call plug#end () set rtp+=~/.vim/foo というように、plug#end の後ろに置くと、bar.vim は読み込まれません。 同じ場所で rtp^=~/.vim/foo としてもだめだったので、rtp 内のパスの並び順の問題ではなさそうです。 なぜ後ろではだめなのでしょうか? 理屈が分かりません。 plug#end() の中で filetype plugin ... が実行されるから >>741 その理屈ですと、plug#end の後に、 set rtp+=~/.vim/foo filetype on とすれば、ちゃんと var.vim が読み込まれる筈ですが、ダメでした。 あと、今回の問題と関係あるか分かりませんが、 plug#end の後に filetype off としても、 vim を起動して :filetype とコマンドを入力すると、 filetype detection:ON plugin:ON indent:ON とメッセージが出力されました。 もしかして、:filetype の設定は .vimrc の中では一度きりしかできないのでしょうか。 ソフトウェアデザイン7月号は Vim 特集だった 入門的な内容だったけど VimL で、日英混在の長さが不揃いの文字列の配列があり、 それを右詰めでバッファに表示させたいです。 let a = ['あiう', 'kakiくけ', 'さshisu'] という配列ならば、a[0] を左に3個半角スペースを接頭し、 a[1] をそのまま、a[2] を左に1個半角スペースを接頭して表示します。 配列内の最大の表示文字幅が分かれば、右詰め自体は printf 関数で簡単にできます。 問題は表示文字幅をどの様に取得するかです。 当然 len 関数は使えないのですが、どの様にすれば良いでしょうか? >>744 解決しました。 strdisplaywidth 関数という、やりたい事そのままの関数がありました。 :lcd で変更されるウインドウローカルな作業ディレクトリを getcwd()で取得した時の戻り値 (に含まれるディレクトリセパレータ)には&shellslash が反映されないのかなー 昔はvim vs emacsだったのに 今はvim vs その他モダンなエディタになってるな Emacsって今どうなってるん? 各個人が発展させてるだけ? Happy Hacking KeyboardスレだとまだEmacsは最前線ツールで、Vimやその他はライトユーザーのおもちゃ扱いされていて悲しかった 日本語の単語の区切り(wコマンドなどの)ってどのように決められているのですか? ひらがな カタカナ 漢字 英数字とアンダーバー 記号 それぞれの塊ごとで区切られてるはず よくまあ日本語文字の種類に対応できるね 外国人エンジニアのITスキル半端ないわ それとも日本語対応部分の処理は日本人が実装しているのかな って事は、「漢字仮名交じり文で書きました。」は「漢字仮名交」「じり」「文」「で」「書」「きました。」で区切られちゃう? >>754 やってみたら、そうなりました。 あと、調べたら jasegment.vim なんて作ってる人もいるのですね。 句読点やカギ括弧のような全角記号と、コンマや丸括弧のような半角記号は、 同じ種類とみなされるようだ ちょっと不思議 >>755 それ凄そうね けれど5年以上更新されてないのが気になる >>758 文字なり文節の区切り方がコロコロ変わるわけでもないかから更新する必要もないだろ >>760 俺はenterキーをescキーにマップしてる 改行は C-j 次にノーマルモードで何か打つときは、c-[ 次に何も操作しないとき (左手がホームポジション離れてもいいとき)は、ESC が多いかな こういうのにescキーを割り当てると捗りそうなんだが、linuxで使ってる奴いる?https://www.amazon.co.jp/dp/B004HAFZ1I C-[でescなんて初耳だわ C-@に割り当ててた意味って >>764 > C-[でescなんて初耳だわ それ別にviの独自のキーバインドじゃないからな viではなくてvimでできるようになった感じですか? >>766 terminalでは一般的なキーバインド >>764 USキーボードなら@の位置が[なんだけどね >>764 厳密には、C-[, C-c みたいなの esc じゃないらしい。 >>772 何を適当なこといってるんかな 端末上でEscとCtrl-[は同じ、EscとCtrl-Cは全然別物 こうやって下々の者達が互いに啀み合ってくれて本当に助かります Windows版gvimでdeoplete使うと自動補完が始まるまで時間がかかりすぎない? auto_complete_delayの設定値+1秒強くらい CPUが忙しいわけでもなく、ただ待ってるだけみたい vimでEnterキーをCtrlキーにマップする方法はありますか? evimなんて機能あったのね gvimのキーバインドを普通のエディタにする奴 vimなのにC-Aで全選択できたりC-Sで保存できたり違和感しかない コマンドモードのへの移行方法分からんけど 膨大な機能をメニューから探すなんてやってられないしな visual studioにvimのプラグインがあったから使ってみたんだけど、C-vしたらクリップボードがペーストされて、一瞬???なったの思い出した。 中途半端にマップしてあると面倒だよね。 これはちゃんと使えるんだろうか、とかコーディングとは関係ない疑心が湧いて、繰り返してるとそれで疲れてしまう。 前試したときそのままじゃ使い物にならなくて途中で面倒になって使わなくなった バッファの最初の行の前に :read で挿入したいです。 最初の行で <C-O> などで空白行を挿入して、 そこで :read して、空白行を削除するしかないですか? >>782 :h :read > To insert text above the first > line use the command ":0r {name}". >>783 見逃していました。 ありがとうございました。 ビックリマークってコマンドの前後で意味変わるのね こんなのどこで覚えろってんだ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる