vim Part 6 [sc](★0)
-
- 1
- 2015/01/13(火) 13:05:45.21
-
主にWindows環境でのVimについてのスレッドです。
本家: http://www.vim.org/
Windows版バイナリ配布: http://www.kaoriya.net/
vim-jp: http://vim-jp.org/
VimWiki: http://vimwiki.net/
ctags 日本語対応版: http://hp.vector.co.jp/authors/VA025040/
名無しのVIM使い(スクリプト) http://nanasi.jp
spanish passion Linux(全オプション) http://www15.ocn.ne.jp/~tusr/
ずんWiki http://www.kawaz.jp/pukiwiki/?vim
関連リンク
UNIX板 Vim Part22: http://peace.2ch.net/test/read.cgi/unix/1365071542/
MacVim 再び: http://anago.2ch.net/test/read.cgi/mac/1133534694/
前スレ vim Part 5: http://anago.2ch.net/test/read.cgi/software/1379912425/
-
- 696
- 694
- 2018/02/16(金) 19:09:45.16
-
ありがとうございます
試してみます
-
- 697
- 2018/02/17(土) 00:39:36.85
-
vim右下の行列表示で 7,105-71となっているとき
右の71は半角1,全角2として
左の105は半角1、全角3として計算しているようです。
UTF8なら左、Shift_JISなら右の数字を見ると1行のデータ量が分かるいいということであってますか?
-
- 698
- 2018/03/01(木) 19:25:43.48
-
香り屋さんのを仕事で使ってるんだけど
ctrl-;はやっぱ割り当てられないよね
[キーが遠くて小指が痛いのんだけど、どのキーで妥協すべき?
-
- 699
- 2018/03/01(木) 21:40:23.05
-
俺Ctrl+iだわ
-
- 700
- 2018/03/02(金) 01:15:09.12
-
>>698
英語配列だとキーひとつ分左なんだよね、[って。
-
- 701
- 2018/03/02(金) 01:16:26.83
-
>>699
タブ入力する時に使うから割当て変えるの凄いと思った
-
- 702
- 2018/03/02(金) 02:56:04.11
-
>>701
タブ入力はC-v,Tabかな。あんま使わないから
基本プログラミングとかしない。メモ帳と小遣い帳
-
- 703
- 2018/03/03(土) 21:45:46.26
-
linux で vim を使っています。
今、6行目の4列目にカーソルがあるとして、
2行目から4行目の範囲の文字列を外部コマンドに標準入力を通して送り、
コマンド処理において標準出力に出力された文字列をカーソルの位置に挿入したいです。
コマンドラインモードで
:2,4! コマンド
とすると、2行目から4行目が消され、2行目にコマンドが出力した文字列が挿入されます。
そうではなく、カーソルの位置に挿入したいのですが、可能でしょうか。
-
- 704
- 694
- 2018/04/23(月) 15:44:09.38
-
>695
遅レスですが、まんまやりたいことができました
ありがとうございました
ただ、当たり前ですが path から探すので
自分のフォルダ構成だと patch ファイルと同じディレクトリに遷移する必要がありました
そこで下記のマップをして改良してます
nnoremap ,gf :cd %:h<CR>:call gf#user#do("gf", "n")<CR>
-
- 705
- 2018/05/12(土) 09:02:19.28
-
一文字ずつ間にデリミタを入れるように置換したい。
[例]
1749064 --> 1,7,4,9,0,6,4
正規表現を使って一発で置換できるだろうか?
:s/\v(\d)(\d)/\1,\2/g
これを2回適用すればできたけど、なんか不様。
-
- 706
- 2018/05/12(土) 11:19:50.04
-
>>705
先読みで
:s/..\@=/&,/g
vimの先読みは \@= と書き、その直前の正規表現(この場合二つめの .)がその場所で一致するかどうかを見る
ちなみに & は一致した文字列全体
-
- 707
- 2018/05/12(土) 12:09:06.89
-
>>705
試してないけどこれでもいけるかも
s/\d\ze\d/&,/g
-
- 708
- 2018/05/13(日) 03:18:44.26
-
vimの先読み後読みって覚えづらいのよね……
おれ先に(?=)とかで覚えちゃったから余計に
-
- 710
- 2018/05/13(日) 17:19:35.36
-
>>708
\zsと\zeのがわかりやすいしね
-
- 711
- 2018/05/17(木) 05:28:13.18
-
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
-
- 712
- 2018/05/17(木) 05:33:11.22
-
この画像だと、フォルダとファイルは一緒に並んでいて、ファイルにインデントがかかってないです。
こんな風にしたいです。
https://camo.githubusercontent.com/7b67065e8ff4985dff6068a154ed54a790e948c2/687474703a2f2f692e696d6775722e636f6d2f49536e567776432e706e67
-
- 713
- 2018/05/17(木) 05:53:40.46
-
こんなのにしたいです
https://tmnm.tech/static/776712c1fbc314e04e020324c9dacb0d-29a6e.png
-
- 714
- 2018/05/17(木) 06:23:16.17
-
自己レス
Xuyuanp/nerdtree-git-plugin
これの影響でした
-
- 715
- 2018/05/18(金) 07:45:49.89
-
正規表現にも方言があるから面倒だよな
grepのman見るまで基本や拡張があるなんて知らんかったし
vimの置換に手を焼いてたら原因がエスケープの有無とかほんと
-
- 716
- 2018/05/18(金) 13:09:21.66
-
指定した正規表現の量指定子やエスケープ、クラス、グループなんかをそれぞれ色分けして表示してくれるといいのにね。
そうすれば、エスケープし忘れている文字とかも一発で視認できる。
-
- 717
- 2018/05/18(金) 14:14:43.14
-
エスケープの有無の違いがウザい
未だに戸惑うし
-
- 718
- 2018/05/19(土) 17:38:25.00
-
編集が済んでファイルを :bd で 閉じているのですが、
この時にtabは閉じないようにできないでしょうか?
tab 毎に カレントディレクトリを変えているのでやや困っています。
-
- 719
- 2018/05/19(土) 21:54:37.42
-
>>718
https://thinca.hatenablog.com/entry/20111204/1322932585
" タブページを常に表示
set showtabline=2
" gVimでもテキストベースのタブページを使う
set guioptions-=e
後:bdだと:ls!では表示されるから俺は:bw使ってる
-
- 720
- 2018/05/20(日) 06:24:30.86
-
>>718
http://vim.wikia.com/wiki/Deleting_a_buffer_without_closing_the_window
-
- 721
- 2018/05/20(日) 17:44:58.14
-
>>719,720
ありがとうございます。
720 の plugin が やりたいことっぽいので試してみます。
-
- 722
- 2018/05/21(月) 21:15:38.92
-
8.1きてるじゃないですか
-
- 723
- 2018/05/21(月) 22:02:36.13
-
kaoriyaのも5/20付?で8.1あるな
-
- 724
- 2018/05/22(火) 04:19:25.71
-
8.1のターミナルサポートってなんのこと?
:terminalとはまた違うターミナル?
-
- 725
- 2018/05/22(火) 04:27:52.17
-
>>724
これ見ると同じみたい
いつからあるのか知らないけど
https://www.vim.org/vim-8.1-released.php
-
- 726
- 2018/05/22(火) 10:39:06.82
-
C-pでと入力補完ができるけどまさかC-x C-fでパス補完までできるとは
vimに標準でemacsじみた操作があるとか何この初見殺し
-
- 727
- 2018/05/22(火) 17:49:56.67
-
gvimからのterminal素敵すぎる
-
- 728
- 2018/06/14(木) 21:01:03.80
-
Windows7でkaoriya版vimを使って言語の勉強をしています
普段は漢字入力をするとファイルの文字コードがcp932になっており
Windowsはそれで自然だと思うし不便なかったのですが
Go言語はutf-8のソースファイルでないとコンパイルが通らないため
「拡張子goのファイルを新規作成した時だけ自動でファイルエンコードが
utf-8になる」という設定をしたいです
どの設定ファイルをどういじれば実現できるでしょうか
-
- 729
- 2018/06/14(木) 22:05:55.81
-
windowsはデフォルトだと %userprofile%\_vimfiles が設定ファイル
autocmd FileType go setlocal fileencoding=utf8
-
- 730
- 2018/06/15(金) 04:46:20.45
-
>>729
_vimrcファイルを作っていたのでそこにその通り追加したら_出来ました
ありがどうございます
-
- 731
- 2018/06/21(木) 16:32:02.25
-
「The VimL Primer」という本を読んでいるのですが、
その中に autoload/mpc/autoload/mpc.vim というディレクトリ構造が登場します。
autoload ディレクトリの下に更に autoload ディレクトリを置くのは無駄ですよね?
-
- 732
- 2018/06/24(日) 12:01:26.67
-
vundle でプラグインをインストールすると、
.vim/bundle/<そのプラグイン名>/ftdetect
というように、ftdetect ディレクトリがこんな所に作られますが、
その中身を .vim/ftdetect ディレクトリにコピーしないと、これは機能しませんよね。
それとも、vundle の設定の一環として .vimrc に何か書く事で、
わざわざコピーしなくても機能させるようにするのが普通なのでしょうか。
-
- 733
- 2018/06/24(日) 13:32:56.94
-
Vundleが~/.vim/プラグイン名 をrtpに追加してくれるから普通はそのままで動くと思うけどなあ
他の設定とかプラグインでftdetectが上書きされてるとか?
-
- 734
- 2018/06/24(日) 15:48:20.09
-
>>733
rtp変数にどのようなパスが設定されていようと、
.vim/ftdetect ディレクトリ内の *.vim ファイルしか読みとってくれないのですが、
これは異常なのですか?
そういうものだと思っていました。
.vimrc 設定ファイルを見直してみましたが、なにが悪さをしているのか見当がつきません。
プラグインも vundle を使って vim-mql5 と vim-surround の2つをインストールしているだけです。
ftdetect が上書き(?)されるような設定というのは、例えばどのようなものがあるでしょうか?
-
- 735
- 2018/06/24(日) 18:31:32.68
-
>>734
例えばrtpに~/.vim/vundle/vim-mql5が入ってるなら、その下にある ftdetect/*.vim は読み込まれるはず。
:scriptnames しても vim-mql5 以下のファイルは出てこない?
ttps://github.com/rupurt/vim-mql5
をみると拡張子は .mqh か .mq5 の場合だけファイルタイプ設定するみたいだけど、そうなってるよね?
-
- 736
- 2018/06/24(日) 19:57:42.28
-
>>734
ここらへんは読んだ?
https://github.com/VundleVim/Vundle.vim/issues/16
-
- 737
- 2018/06/24(日) 21:15:12.99
-
問題が解決しました。
アドバイスのおかげです。
filetype plugin indent on は vandle#end の後に書かないといけないのですね。
vubdle 導入時にどこかのブログから基本設定をコピペしてきて、
そこに後は入れたいプラグインをvundle#begin と vundle#end で挟んで書くだけとあったので、
そのままコピペした設定の後ろ (filetype plugin ... の後ろ) に追加していました。
vundle が何をやっているのかとか、filetype の仕組みとか、色々勉強になりました。
-
- 738
- 2018/06/25(月) 07:13:53.16
-
>>737
https://github.com/VundleVim/Vundle.vim
これのQuick Startの.vimrcのサンプルぐらいは読んでおくことをすすめる
Vundleで必要な設定がコメントされてる
それとVundleはもうメンテされてないから早いうちに別のプラグインに移行しておくと楽かも
https://github.com/junegunn/vim-plug
vim-plug はVundleと設定やコマンドが殆ど同じで、プラグインのアップデートを並列処理で行ってくれるために高速
-
- 739
- 2018/06/25(月) 09:15:01.66
-
>>738
ありがとうございます。
参考にさせていただきます。
-
- 740
- 2018/06/26(火) 19:20:11.33
-
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 内のパスの並び順の問題ではなさそうです。
なぜ後ろではだめなのでしょうか? 理屈が分かりません。
-
- 741
- 2018/06/27(水) 00:01:10.89
-
plug#end() の中で filetype plugin ... が実行されるから
-
- 742
- 2018/06/27(水) 09:23:00.01
-
>>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 の中では一度きりしかできないのでしょうか。
-
- 743
- 2018/06/27(水) 17:26:40.50
-
ソフトウェアデザイン7月号は Vim 特集だった
入門的な内容だったけど
-
- 744
- 2018/06/30(土) 21:56:44.40
-
VimL で、日英混在の長さが不揃いの文字列の配列があり、
それを右詰めでバッファに表示させたいです。
let a = ['あiう', 'kakiくけ', 'さshisu']
という配列ならば、a[0] を左に3個半角スペースを接頭し、
a[1] をそのまま、a[2] を左に1個半角スペースを接頭して表示します。
配列内の最大の表示文字幅が分かれば、右詰め自体は printf 関数で簡単にできます。
問題は表示文字幅をどの様に取得するかです。
当然 len 関数は使えないのですが、どの様にすれば良いでしょうか?
-
- 745
- 2018/07/01(日) 07:24:09.21
-
>>744
解決しました。
strdisplaywidth 関数という、やりたい事そのままの関数がありました。
-
- 746
- 2018/07/08(日) 22:50:39.89
-
:lcd で変更されるウインドウローカルな作業ディレクトリを getcwd()で取得した時の戻り値
(に含まれるディレクトリセパレータ)には&shellslash が反映されないのかなー
このページを共有する