vim Part 6©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/01/13(火) 13:05:45.21ID:JwnBl2Yv0
主に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/
2018/06/25(月) 07:13:53.16ID:tAow12uZ0
>>737
https://github.com/VundleVim/Vundle.vim
これのQuick Startの.vimrcのサンプルぐらいは読んでおくことをすすめる
Vundleで必要な設定がコメントされてる

それとVundleはもうメンテされてないから早いうちに別のプラグインに移行しておくと楽かも
https://github.com/junegunn/vim-plug

vim-plug はVundleと設定やコマンドが殆ど同じで、プラグインのアップデートを並列処理で行ってくれるために高速
2018/06/25(月) 09:15:01.66ID:Wn+Lak0X0
>>738
ありがとうございます。
参考にさせていただきます。
2018/06/26(火) 19:20:11.33ID:+/jhckfA0
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 内のパスの並び順の問題ではなさそうです。

なぜ後ろではだめなのでしょうか? 理屈が分かりません。
2018/06/27(水) 00:01:10.89ID:j2gq8GfR0
plug#end() の中で filetype plugin ... が実行されるから
2018/06/27(水) 09:23:00.01ID:qRvNG1Sl0
>>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 の中では一度きりしかできないのでしょうか。
2018/06/27(水) 17:26:40.50ID:5a8EYcvd0
ソフトウェアデザイン7月号は Vim 特集だった
入門的な内容だったけど
2018/06/30(土) 21:56:44.40ID:rRUFvPvZ0
VimL で、日英混在の長さが不揃いの文字列の配列があり、
それを右詰めでバッファに表示させたいです。

let a = ['あiう', 'kakiくけ', 'さshisu']

という配列ならば、a[0] を左に3個半角スペースを接頭し、
a[1] をそのまま、a[2] を左に1個半角スペースを接頭して表示します。

配列内の最大の表示文字幅が分かれば、右詰め自体は printf 関数で簡単にできます。

問題は表示文字幅をどの様に取得するかです。
当然 len 関数は使えないのですが、どの様にすれば良いでしょうか?
2018/07/01(日) 07:24:09.21ID:JhLRfiKX0
>>744
解決しました。
strdisplaywidth 関数という、やりたい事そのままの関数がありました。
2018/07/08(日) 22:50:39.89ID:T4xC9S2D0
:lcd で変更されるウインドウローカルな作業ディレクトリを getcwd()で取得した時の戻り値
(に含まれるディレクトリセパレータ)には&shellslash が反映されないのかなー
2018/07/09(月) 15:12:09.70ID:tofSWAtX0
テキストエディター戦争は「Vim」がまた一歩リードか、Webブラウザーで動作可能に
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1131850.html
2018/07/09(月) 20:47:58.33ID:+2d+js5j0
昔はvim vs emacsだったのに
今はvim vs その他モダンなエディタになってるな
2018/07/10(火) 01:09:35.12ID:ceilv6oY0
Emacsって今どうなってるん?
各個人が発展させてるだけ?
2018/07/10(火) 09:03:32.27ID:LCUTnq380
Happy Hacking KeyboardスレだとまだEmacsは最前線ツールで、Vimやその他はライトユーザーのおもちゃ扱いされていて悲しかった
2018/07/11(水) 21:20:57.75ID:66l7HRox0
日本語の単語の区切り(wコマンドなどの)ってどのように決められているのですか?
2018/07/12(木) 01:04:37.32ID:9Uk+FCCV0
ひらがな
カタカナ
漢字
英数字とアンダーバー
記号
それぞれの塊ごとで区切られてるはず
2018/07/12(木) 08:30:23.28ID:nNbcR9b20
よくまあ日本語文字の種類に対応できるね
外国人エンジニアのITスキル半端ないわ
それとも日本語対応部分の処理は日本人が実装しているのかな
2018/07/12(木) 13:15:55.15ID:S3uIZCu10
って事は、「漢字仮名交じり文で書きました。」は「漢字仮名交」「じり」「文」「で」「書」「きました。」で区切られちゃう?
2018/07/12(木) 21:33:09.80ID:gipOXm4E0
>>754
やってみたら、そうなりました。

あと、調べたら jasegment.vim なんて作ってる人もいるのですね。
2018/07/12(木) 21:34:47.11ID:9Uk+FCCV0
「きました」「。」だね
2018/07/12(木) 21:42:15.53ID:qqd4jy1d0
句読点やカギ括弧のような全角記号と、コンマや丸括弧のような半角記号は、
同じ種類とみなされるようだ
ちょっと不思議
2018/07/13(金) 02:47:14.54ID:BF0SQQjN0
>>755
それ凄そうね
けれど5年以上更新されてないのが気になる
2018/07/13(金) 10:04:35.72ID:Y69PDjoV0
>>758
文字なり文節の区切り方がコロコロ変わるわけでもないかから更新する必要もないだろ
760名無しさん@お腹いっぱい。
垢版 |
2018/07/20(金) 06:48:47.53ID:c72Mb7Mn0
皆さんはesc派ですか
それともC-[派ですか
2018/07/20(金) 09:47:04.65ID:5/DWREFT0
>>760
俺はenterキーをescキーにマップしてる

改行は C-j
2018/07/20(金) 20:33:37.05ID:fhSqDnc20
次にノーマルモードで何か打つときは、c-[
次に何も操作しないとき
(左手がホームポジション離れてもいいとき)は、ESC が多いかな
2018/07/20(金) 21:46:37.43ID:uQK3C5rM0
こういうのにescキーを割り当てると捗りそうなんだが、linuxで使ってる奴いる?https://www.amazon.co.jp/dp/B004HAFZ1I
2018/07/22(日) 09:29:17.20ID:PVAvAjP20
C-[でescなんて初耳だわ
C-@に割り当ててた意味って
2018/07/22(日) 11:03:34.10ID:xaFzSwEz0
>>764
> C-[でescなんて初耳だわ
それ別にviの独自のキーバインドじゃないからな
2018/07/24(火) 17:16:29.78ID:wKgsG2Ix0
viではなくてvimでできるようになった感じですか?
2018/07/25(水) 00:47:21.98ID:+po5eIh30
>>760
あのDOS窓ですらC-[はESCだぞ
2018/07/25(水) 00:47:55.91ID:+po5eIh30
ごめん、アンカーミス
2018/07/25(水) 00:54:12.61ID:xSuCpqwM0
>>766
terminalでは一般的なキーバインド
2018/07/25(水) 01:01:00.70ID:lncp6ouu0
なるほどー
2018/07/25(水) 02:33:00.70ID:RkBDcNR90
>>764
USキーボードなら@の位置が[なんだけどね
2018/07/26(木) 03:11:25.59ID:1lTzD8qJ0
>>764
厳密には、C-[, C-c みたいなの esc じゃないらしい。
2018/07/26(木) 22:58:29.81ID:oDkuNumt0
>>772
何を適当なこといってるんかな
端末上でEscとCtrl-[は同じ、EscとCtrl-Cは全然別物
2018/07/27(金) 09:28:00.27ID:9g4nAFDu0
端末の話だなんて言ってないだろ
2018/07/27(金) 12:16:18.88ID:+LY+IQEu0
こうやって下々の者達が互いに啀み合ってくれて本当に助かります
2018/08/01(水) 13:00:14.60ID:9sUbFTo10
Windows版gvimでdeoplete使うと自動補完が始まるまで時間がかかりすぎない?
auto_complete_delayの設定値+1秒強くらい
CPUが忙しいわけでもなく、ただ待ってるだけみたい
2018/08/01(水) 22:32:08.63ID:b1GTCG730
7777777
2018/08/06(月) 07:43:15.85ID:U1MbOkSO0
vimでEnterキーをCtrlキーにマップする方法はありますか?
2018/08/06(月) 16:12:59.89ID:zzunncLX0
evimなんて機能あったのね
gvimのキーバインドを普通のエディタにする奴
vimなのにC-Aで全選択できたりC-Sで保存できたり違和感しかない
コマンドモードのへの移行方法分からんけど
膨大な機能をメニューから探すなんてやってられないしな
780名無しさん@お腹いっぱい。
垢版 |
2018/08/06(月) 18:53:37.18ID:L/wEQq+A0
visual studioにvimのプラグインがあったから使ってみたんだけど、C-vしたらクリップボードがペーストされて、一瞬???なったの思い出した。
中途半端にマップしてあると面倒だよね。
これはちゃんと使えるんだろうか、とかコーディングとは関係ない疑心が湧いて、繰り返してるとそれで疲れてしまう。
2018/08/06(月) 19:33:39.43ID:nOqa2cJQ0
前試したときそのままじゃ使い物にならなくて途中で面倒になって使わなくなった
2018/08/14(火) 08:11:53.45ID:19iNyLkX0
バッファの最初の行の前に :read で挿入したいです。

最初の行で <C-O> などで空白行を挿入して、
そこで :read して、空白行を削除するしかないですか?
2018/08/14(火) 08:49:38.87ID:1qnqf7+t0
>>782
:h :read

> To insert text above the first
> line use the command ":0r {name}".
2018/08/14(火) 10:14:12.69ID:19iNyLkX0
>>783
見逃していました。
ありがとうございました。
2018/08/16(木) 16:31:52.90ID:ObcI9Ij+0
ビックリマークってコマンドの前後で意味変わるのね
こんなのどこで覚えろってんだ
2018/08/16(木) 23:17:02.89ID:6+FCz+290
:!sort と :sort! のことでも言ってるんかな。全然別物だから。
:! は外部コマンドの実行だから、:!sort は sort という外部コマンドを実行する。
:sort! は :sort というVimの組み込みコマンドにオプションの ! を付けたもの。
分からないことがあればとりあえずヘルプ読め。:help :!、:help :sort
2018/08/17(金) 02:00:02.66ID:d13wYvV10
暗黒美夢応のなんとかっていうプラグインを使って色んなプラグインを入れてるんだけど、暗黒美夢王のそのプラグインやその他のプラグインのアップデートってどうやるの?
もしかしてひとつづつ、gitからプルするの?
2018/08/17(金) 02:01:24.08ID:d13wYvV10
dein.vimとそれで入れた他のプラグインの事っす
2018/08/17(金) 03:34:35.06ID:V1Wp3Cpr0
何のためのものか理解してから導入しろよ
2018/08/17(金) 07:10:30.24ID:RoUUQULk0
プラグインに手を出し始めると末期
長い目で見れば、アプリは標準機能のみで使うのが最も幸せになれる
2018/08/20(月) 03:07:42.19ID:nA0BdC6d0
プラグインしこたま突っ込んでも結局戻すまでがテンプレですし
デスクトップ弄って最終的に元に戻すのと同じで
2018/08/20(月) 04:46:28.46ID:MlWQVfa90
ファイルブラウザのサイドバーとアイコンのプラグイン付けたらめちゃめちゃ重くなった
見た目に愛着湧いたけど重くてマジで苦痛
2018/08/21(火) 22:21:17.46ID:E4Z5L6hF0
プラグインいっぱい入れても結局使うのって限られてるよね。
せいぜい3〜4個
2018/08/21(火) 22:26:15.72ID:upG8w6Rr0
まあそうだよな
surround, ctrlp, matchit そんなもんかな
2018/08/22(水) 00:33:26.80ID:ndRlhQ4q0
48個入ってるな
ほとんど使ってないのもあるけど
削れて半分、20個以上は必要な感じ
2018/08/22(水) 05:58:00.80ID:y6BELLzR0
ソフトウェアデザインの7月号はVim特集だったみたい
読んだ人いる?
2018/08/22(水) 07:13:55.76ID:O/QxIFV50
あの雑誌の編集は頭おかしい
ネタがなくなるとVim・Emacs特集組みやがる
しかも絶対主義とか言っちゃってて痛々しい
2018/08/22(水) 18:19:24.14ID:SGC9XhDa0
>>796
インストール、文字入力、プラグインの入れ方、等の入門編だった
このスレの住人なら、実践Vim 方がためになると思う
2018/08/22(水) 21:07:13.24ID:y6BELLzR0
>>798
どうもありがとう
実践Vim気になってるんだけど、紙のはもう売ってないみたいね
オライリーのメガネ猿のは持ってるから、それ以降のバージョンの事と最新のプラグイン周りの事まとまったのが読みたい

技術書、入門書のスレってどこかにある?
2018/08/23(木) 11:00:09.66ID:4QY9ybQq0
USO800
801名無しさん@お腹いっぱい。
垢版 |
2018/08/23(木) 20:02:53.34ID:QrzTL7fT0
ノーマルモードの<S-Space>って移動?選択?それとも環境依存?
2018/08/23(木) 20:48:59.82ID:ep291Wl50
ぶっちゃけvim関連の書籍って役に立つの?
今はマニュアルの日本語化が進んでるからそれで十分じゃない?
2018/08/23(木) 21:35:10.18ID:/zS7TY/I0
これから使い始める人には必要でしょ
Vimのヘルプは充実しているけれど
初心者は適切なヘルプキーワードを知らないからな
2018/08/23(木) 22:11:38.72ID:NIkP7Jq80
>>803
>初心者は適切なヘルプキーワードを知らないからな
紙の本でも同じ事が言えるのでは
2018/08/24(金) 00:13:04.65ID:vNMov14B0
usr_XX.txt は上から下まで読んどく価値がある
2018/08/24(金) 01:49:42.87ID:hzCq7NQG0
>>804
ヘルプは量が多すぎるから辞書代わりにキーワードを指定して調べ物するにはいいけど、最初から最後まで通して読むには向いてない
一方で紙の本は何も知らない初心者が要点をかいつまんで最初から通して読める分量になってるでしょ
2018/08/24(金) 02:24:56.81ID:ASi+hO/00
>>805
なにそれ
詳しく
2018/08/24(金) 13:42:30.36ID:vNMov14B0
>>807
ヘルプファイルの usr_01.txt から usr_45.txt までのこと
2018/08/24(金) 17:59:49.67ID:aKWroCFh0
どんなに厚い本でも目次や索引があれば検索自体は容易なのでは?
Linuxからしてそうだがこの界隈は説明書読むのに説明書がいるんだから同じ尺度で考えちゃいかんよ
そして利用者はその煩雑な手間を学習に向くだの楽だのしか言わないから面白い
2018/08/24(金) 19:33:39.41ID:w/E6eQSk0
そもそも用語とか概念とかを知らないと索引があっても検索のやりようがないから入門書は重要
例えばテキストオブジェクトという概念を知らなければいきなり登場したciwについて調べようがない
2018/08/24(金) 22:10:09.20ID:7mJYpxtK0
>>810
例が悪くない?
help.jaxのど頭21行の知識
> 移動: カーソルを使用するか、"h" で左、"j" で下、"k" で上、"l" で右に移動できます。
> 項目へジャンプ: タグ (例: |bars|) にカーソルを合わせ、CTRL-] を押します。
> 元の場所に戻る: CTRL-T or CTRL-O を押す。繰り返すと更に戻れます。
> ノーマルモードコマンド :help x
だけで
:help c
{motion} の上で CTRL-]
motion.txt の上で CTRL-]
と簡単にたどり着けてしまう
2018/08/25(土) 04:06:50.82ID:KpEQ/+cK0
いくらヘルプを日本語化しようが:helpは日本語で検索できないからね仕方ねいね
・vimのヘルプを日本語化する
・man vimでヘルプの出し方を調べる
・どのヘルプファイルに調査対象の文字があるかをgrepで調べる
・$ vim +:"help"でヘルプを開く
・該当するヘルプファイルのタグでC-[
・/で目当ての文字を検索
man vimだってmanの存在知ってる前提だからな
英語だったら翻訳の手間いるし説明書読むのに説明書がいるってのはこういうことだ
2018/08/25(土) 04:59:37.57ID:roW6uKsx0
>>811
それは c と i と w がそれぞれ意味を持っていることを知ってるから :help c を実行しようと思うんだよね?
>>810の言うようにまだvimに馴染んでない初心者が :help ciw としたところで何も見つからない
2018/08/25(土) 06:48:34.74ID:t8GWWwbu0
同人誌で良いから詳細でとっても分かりやすい説明書出してよ
pdfじゃなくてちゃんと紙の書籍で
2018/08/25(土) 06:50:28.78ID:t8GWWwbu0
90年代のころと違ってもうEmacsよりVimの勝ちだと思ってたんだが、Emacsスレのほうが賑わってるんだな
ネットだとEmacsの書き込みはここ数年前世見なくなったのに。
2018/08/25(土) 06:52:08.07ID:bVLNkdFu0
同人誌って薄い本だろ
2018/08/25(土) 07:07:49.14ID:4ZgGaqlm0
>>812
日本語検索できるぞ。それと :helpgrep あるぞ
:helpg 表示

を入力して :copen してみ?
もちろん日本語helpは導入済みの前提
2018/08/25(土) 07:57:43.96ID:R5zx6hh/0
>>808
チュートリアル的なのってなかったっけ?
2018/08/25(土) 08:01:29.41ID:dhPqP1yC0
EmacsはEmacsで面白いよね。ここ数年使ってないけど結構好き。
2018/08/25(土) 12:17:34.23ID:7y3m1MQV0
>>818
vimtutor だな
入門者はとりあえずやっとくべき
2018/08/25(土) 22:34:18.38ID:cjcBBDCB0
>>813
まぁ、ヘルプ読んだり書籍買うよりも
いきなりciwを登場させた本人に聞くのが一番だね
822名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 08:50:19.20ID:5laNvpcm0
ノーマルモードの<S-Space>って移動?選択?それとも環境依存ですか??
2018/09/19(水) 10:59:09.79ID:uqGsrb9Z0
人いねぇ\(^o^)/
.viminfoに重複履歴があったけど重複保存の回避ってできないかな
bashのHISTCONTROLと似たことしたい
.viminfoでsort+uniqしちゃいかんしソートせずに重複を消すコマンドがあればいいんだけど
824名無しさん@お腹いっぱい。
垢版 |
2018/09/22(土) 20:21:48.21ID:Rx0HRi/N0
ノーマルモードの<S-Space>って移動?選択?どちらですか?
2018/10/24(水) 04:23:56.08
選択した行について、Shellのsortを呼び出して、結果と今の選択行をそっくり入れ換えるにはどうしますか?
2018/10/24(水) 07:33:23.98ID:7LK6eYgU0
>>825
S-Vで複数行選択して:!sort
実際のコマンド行の表示は:'<,'>!sort みたいになる
2018/10/24(水) 08:59:05.20ID:AoOvd0j20
shellのsortを呼び出したい案件なのかもしれませんがvimにsortありますよ
実行は!付けるか付けないかの違いでしかないですが
2018/10/24(水) 17:11:24.99
06'17 Mastering Bash
06'11 GNU Octave Beginner's Guide
10'15 LaTeX Cookbook
08'16 Unreal Engine: Game Development from A to Z
02'12 gnuplot Cookbook
09'12 Blender Game Engine: Beginner's Guide
08'14 Blender 3D Basics Beginner's Guide Second Edition
06'13 SDL Game Development


らの行を選択して、ソーティングしたいとします。但し左の数字列は 出版月'出版年 です
時系列で降順ソートにしたいです。同じ出版年月の本内の順序は問いません

Bashだと
sort --field-separator=\' -n -r --key=2,1
でできました
Vimだとどうやるのか、ちょっとうまくいきません
2018/10/24(水) 19:22:31.95ID:kljbF+SH0
>>828
同じじゃない?
1) カーソルが一番上にある状態で Shift-v でビジュアルモードに入り、G で最終行まで選択して反転させる
2) : (セミコロン) でコマンド入力 (実際には :’<,’> と表示される) モードになるので続けて !sort <オプション> を実行
実際には以下のようになる
:’<,’>!sort ―field-separator=¥’ -n -r ―key=2,1

それともOS (shell?) コマンドの !sort じゃなくてvim内蔵の sort でやりたいけどできないってこと?
2018/10/24(水) 19:51:07.75ID:dNPg7E140
全ての行が対象なら:%使った方が早い
2018/10/25(木) 14:12:09.36ID:56iiKbpE0
!は先頭か末尾かで意味変わるのかよ・・・
連番挿入ってひょっとしてvimで!seqした方が手っ取り早いのか?
2018/10/25(木) 15:40:44.63ID:6mJiKCPg0
ぐへへ

let Sort_by={list,fn -> sort(list,{a,b -> fn(a) > fn(b) ? 1 : -1 })}
let Target={line->substitute(line,"^\\(\\d\\d\\)'\\(\\d\\d\\)",'\2\1',"i")}
call setline(1,Sort_by(getline(1,'$'),Target))
2018/10/25(木) 17:17:04.84ID:6mJiKCPg0
これでどうやろ
久しぶりに書いたんで自信ないけど

command! -nargs=* -range=% -bang Sortby call s:Sortby("<bang>",<line1>,<line2>,<f-args>)

function! s:Sortby(bang,line1,line2,pattern,replace)
let l:Target={string -> substitute(string,a:pattern,a:replace,"i")}
let l:Sort_by={list,fn -> sort(list,{a,b -> fn(a) > fn(b) ? 1 : -1 })}
call setline(a:line1,l:Sort_by(getline(a:line1,a:line2),l:Target))
endfunction


:Sortby ^\(\d\d\)'\(\d\d\) \2\1
2018/10/25(木) 17:17:44.29ID:6mJiKCPg0
あ bangで反対ソートにするつもりだったけどやり忘れた
2018/10/25(木) 18:36:15.79ID:e98at4560
100とかくらいまでなら、試してないけど
100i1<cr>ggVGg<c-a>
とかでいけるんじゃないかね
2018/11/03(土) 10:34:41.18ID:6YsUOUsx0
行の最初に挿入か置換するのどうするの?
0で行の最初にカーソル持ってきてPを押すと2文字目にペーストされてしまう
2018/11/03(土) 11:00:33.53ID:eYrKvFmN0
>>836
挿入ならI置換なら^
左側にペーストってあったっけ?
挿入してレジスタペーストかな?
■ このスレッドは過去ログ倉庫に格納されています
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

ニューススポーツなんでも実況