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/
2017/10/15(日) 21:11:15.02ID:+vJKpvKe0
>>611
ごめん、例が誤解させちゃったみたい。

up と down だったのは特に考えなしに挙げた例で、
実際は何か意味的に対になる単語という訳じゃないんだ。
だから、予め辞書みたいに登録しておけない。

純粋に、2つの行の、同じ列から同じ列までの範囲の文字列を入れ換えたい。

矩形選択した範囲内の一番上の行と一番下の行をスワップする。
これができれば理想的なんだけど。
2017/10/15(日) 22:25:14.16ID:hbvh5OYC0
>>612
俺の知識の範囲ではコマンド一発じゃ無理だけど関数作ればできるよ
置き換える範囲は正規表現でも列でもできるし
2017/10/16(月) 14:09:16.56ID:NHOddXz50
>>613
やっぱ既存のコマンドを繋げるだけじゃ無理か。
関数作ってみるよ。
ありがと。
2017/10/16(月) 15:36:02.02ID:A0Q+iCAA0
>>610
洗練されてないコードだがこんなんとか
function! Sw()
let pat = '\s\+\S\+\s\+'
let l = getline('.')
let m = matchstr(l, pat)
let l2 = getline(line('.') + 1)
let m2 = matchstr(l2, pat)
cal setline(line('.'), substitute(l, pat, m2, ''))
cal setline(line('.') + 1, substitute(l2, pat, m, ''))
endfunction
2017/10/20(金) 00:35:41.26ID:9Lq922rL0
>>610
矩形選択した2行の同列の文字列同士を交換するならこんなんでどうか

function! s:SwapLine()
let pos1=getpos("'<")
let pos2=getpos("'>")
let l1=pos1[1]
let c_start=pos1[2]
let l2=pos2[1]
let c_end=pos2[2]
let len=c_end - c_start + 1
let text1=strpart(getline(l1),c_start-1,len)
let text2=strpart(getline(l2),c_start-1,len)
let line1=getline(l1)
let line2=getline(l2)

let newline1=strpart(line1,0,c_start-1).text2.strpart(line1,c_end)
let newline2=strpart(line2,0,c_start-1).text1.strpart(line2,c_end)

call setline(l1,newline1)
call setline(l2,newline2)
endfunction

vmap <C-S> :<C-U>call s:SwapLine()<CR>
2017/10/20(金) 14:23:23.01ID:B1/d+O3g0
>>616
vmap <C-S> :<C-U>call s:SwapLine()<CR>

vmap <C-S> :<C-U>call <SID>SwapLine()<CR>
618名無しさん@お腹いっぱい。
垢版 |
2017/10/24(火) 12:52:35.00ID:lJHX4Ddo0
ファイルの最後尾を見たくてvim(gvim)をリードモードで開きたいです。
開いたあとにshift+gや、.vimrcの設定ではなく、起動時のオプションで、リードモード、最後尾を表示、で開くにはどうしたら良いでしょうか?

ソフトの実行ログで、最後尾周辺に見たい情報があります。
2017/10/24(火) 13:47:10.36ID:OV1KDivO0
>>618
view + <ファイル名>
view にパスが通ってなかったら vim -R
2017/10/24(火) 21:40:55.66ID:ve11aTtX0
ノーマルモードで、

viWU

の後に、カーソルを最初に v を入力する時にいた位置に戻したいのたが、
関数やプラグインを使わずキーストロークのみで実現するには
マーク機能を使うしかないかな?

<c-o> を入力したら変なところ飛んじゃった。
viWU はジャンプリストには登録されないみたい。
2017/10/25(水) 10:33:41.05ID:QgOEb83f0
>>620
語頭じゃないところで単語を大文字変換して、カーソル位置が動くからそれを元に戻したい、で良いですかね。
maviWUとやって'aしてみましたが駄目でしたよ。
2017/10/25(水) 18:19:16.67ID:CrH398Uo0
>620
viWU``
こういうことをしたい感じ?
マーク機能を使っているけど自動でマークされた場所に戻るだけだからセーフということで
2017/10/25(水) 20:57:59.51ID:w945/33m0
二人ともありがと。

>>621
> 語頭じゃないところで単語を大文字変換して、カーソル位置が動くからそれを元に戻したい、で良いですかね。

そう。

何でだろうな、俺の環境だと >>621 は意図通り成功して、
むしろ >>622 が機能しないんだが。
ただし、>>261 はシングルクォートを使ってるから
バッククォートに変えたけどね。

できればマークを上書きしたくなかったんだが、
それしかキーストロークで実現できなきゃ潔く諦めるよ。
2017/10/25(水) 22:59:13.87ID:CrH398Uo0
あっ、再試験してみたらやっぱり手動でマークしないとダメだった……。なんだろ、無意識にm`しちゃってたのか?
改めて、 m`viWU`` ならたぶん意図通りになるんじゃないかなと。m`はジャンプリストを更新しているので最後の``はC-oでもいけるよ
:h jumplistにも載ってるからたぶん由緒正しい方法
2017/10/26(木) 21:15:31.52ID:p7h8skLL0
>>624
意図通りになった。

が、ヘルプを読んでも previous context mark の意味がよく分からん。
普通のマーク (m[a-z] m[A-Z]) とは違うの?
2017/10/27(金) 18:07:57.94ID:oDT7BWTj0
日本語ヘルプだと「直前位置マーク」ってなっていて、これはとてもいい名付け方だと思う
/とかggとかGとかでカーソルがどこかへジャンプする時にジャンプ前の位置が自動でマークされる
m`は手動でそのマークを更新しているわけね

maとかして`aと違うのはカーソルジャンプが発生すると自動で上書きされるマークだから、一時的に使うだけなら後腐れがないというのが1点
それとC-oで戻れないって>620にあったので戻れるようにできないか調べた結果というのがもう1点
2017/10/27(金) 21:08:26.73ID:FdjtbyQ10
>>626
なるほど、そういう機能なのか。
(日本語もちゃんと意味を理解して訳してるんだね)

理解できたよ。
ありがと。
2017/10/29(日) 17:26:34.66ID:2hFicOAz0
>>601
ノーマルモードで2つのキーq: 連続押しするとexコマンド履歴が表示されるので
それ選択してクリップボードへ。
また :dis ってexモードで入力すると "で始まる各レジスタが表示される。
もしかしたら編集中のファイル名などコピペしたいのがあるかもしれない。
2017/11/08(水) 12:12:30.72ID:HwsBEVk+0
cygwin の vim と kaoriya の gvim を併用しています
nerdtree において、259 文字以上のパスの場合、
cygwin の vim はそのファイルが表示されます
kaoriya の gvim はそのファイルが表示されません

後者の nerdtree において max_path を超えるパスを扱える方法はあるでしょうか

プラグインと設定ファイルはどちらも同じものを読み込んでます
kaoriya 付属の設定が原因かもですが、特定方法が分かりません
630629
垢版 |
2017/11/13(月) 13:11:31.88ID:t6b6lZth0
netrw も同じ症状でした
kaoriya は内部でwin32 api の制限を受けてるってことなんでしょうかね
2017/11/13(月) 18:11:05.12ID:er883CbH0
>>630
Kaoriya版はVisualC++でコンパイルしたネイティブのWindowsアプリなので
Windowsの制限をモロに受けると思う
2017/11/13(月) 19:48:42.85ID:AN9eRedf0
cygwin もネイティブのWindowsアプリなのでWindowsの制限を受けるのは同じ
2017/11/13(月) 20:38:21.25ID:er883CbH0
>>632
うーんじゃあファイル名の長さ制限は別の要因によるのかなあ
まあ自分もかつて両方使って環境変数の競合によるトラブルに悩まされた経験があるので
そもそもCygwinのVimとKaoriyaのVimは併用すべきでないと思う
2017/11/19(日) 13:35:29.94ID:TVXilEkx0
Win32 APIは特別な対策をしなければMAX_PATH文字までしか使えない。
Cygwinはその特別な対策をしているが、Win32版は何もしていない。
2017/11/29(水) 01:43:35.26ID:l4+9B2Hi0
GVimってなんでダメなの?
2017/11/29(水) 11:16:58.03ID:x0JDSmbC0
誰がダメだと言ってたの?
2017/11/29(水) 13:53:19.92ID:Cn9Z4Eq+0
VIP板のプログラミングスレの人達が言ってた
2017/11/29(水) 13:59:35.80ID:N7yajO2K0
GVIPならよかったんじゃね?
2017/11/30(木) 09:04:35.33ID:3PPJ82c80
linuxなら使わんけど
windowsなら普通に使う
2017/11/30(木) 09:40:33.28ID:6UwNqrtQ0
Gvimがダメなんじゃなくて
Gvimがダメとか言ってる人たちがダメなんでしょ
弘法筆を選ばず
Windowsのメモ帳だってコードは書ける
2017/11/30(木) 15:14:08.43ID:Kr867vK00
まあcatよりはマシかもね
2017/11/30(木) 17:23:03.64ID:27CcoRuh0
挿入モードでカーソルを行末に持って行くのに、C-o $でやっているのですが他に方法って有りましたっけ。
2017/11/30(木) 17:35:50.97ID:3PPJ82c80
End
2017/12/01(金) 08:01:01.83ID:OKrtfkyp0
思考を放棄して ESC A してる
2017/12/01(金) 13:20:44.67ID:POVz5gxT0
>>643
それって入力中の文字列の最後に行くだけじゃないっけ
646名無しさん@お腹いっぱい。
垢版 |
2017/12/01(金) 13:40:07.04ID:Md8z6RvL0
C-eを<End>にcnoremapしてる
647642
垢版 |
2017/12/01(金) 14:17:12.52ID:Ua777U600
様々なご意見ありがとうございます。

MacbookなのでEndがないのと、ホームポジションからなるべくキーを離したくないのです。
今まではESC AまたはC-[ Aだったのですが、最近ようやくC-o $を知りました。
どのみち2ストロークだよなあ、と思って質問してみました。
vimrc弄ってマッピングするのは盲点でした。検討してみます。
2017/12/01(金) 20:09:15.11ID:yk3phPpD0
>>645
嘘でした。ちゃんと行末に飛びます
ごめんなさい
2017/12/01(金) 22:13:17.49ID:e8YCngbo0
>>647
Fn+rightキーでend
2017/12/02(土) 06:25:06.47ID:W/e2T6nM0
未だにAltってマップ出来ないの?
651642
垢版 |
2017/12/02(土) 15:25:27.28ID:r8rxGv9X0
>>649
ホームポジションから離れるので遠慮しておきます。ありがとうございます。
2017/12/02(土) 18:04:49.08ID:YOi+asrS0
フットペダルの出番ですね!?
653642
垢版 |
2017/12/03(日) 01:34:39.27ID:6TrYNGJA0
>>652
バランスチェアで仕事しているため、足が床に着かないのでそれは無理です。
2017/12/03(日) 10:23:47.82ID:aaXDgAD90
vim を使用しているとき矢印キーを不能にしたくて、
試しに :noremap! <Up> <Nop> としましたが、
インサートモードでおかしな挙動をします。
1つ上の行に1文字 A が挿入されます。

不可解です、これはどう言うことでしょうか?

コマンドラインモードでは問題なく意図通りになっています。

ちなみに、:noremap! <Del> <Nop> もインサートモードでの挙動が変です。
こちらはカーソルのすぐ左の1文字の大小が入れ替わり、
かつノーマルモードへ戻ってしまいます。

:noremap! <BS> <Nop> はインサートモードでも意図通りになりました。
2017/12/03(日) 10:28:33.55ID:aaXDgAD90
>>654
ごめんなさい。
あせって質問する前に落ち着いてしっかりリサーチすべきでした。

互換モードが絡んでいたのですね。

解決しました。
2017/12/03(日) 12:15:11.52ID:aaXDgAD90
>>655
ごめんなさい、嘘をついていました。
まだ解決されていません。

矢印キーや Delete キーなどの挙動の仕組みは理解できました(つもり)。

そこで、set nocompatible を .vimrc に既述しましたが、症状は変わりません。
そもそも .vimrc が存在する時点で、デフォルトで nocompatible on のはずです。

仮想端末の方が悪いのかと、数種類試してみましたが、どの場合も同じ症状です。

vim のコンパイルオプションが関係しているのかと、vim --version で確認しましたが、
vi互換性やキーコードに関係していそうなオプションは見あたりませんでした。

もともと、矢印キーなどへ伸びる手を矯正しようと Nop に設定したので、
意図しない挙動であっても実質的には問題ないのですが、
やはり理由、原因は気になります。

vi互換性を切っても出るこの症状は何が原因なのでしょうか。
657629
垢版 |
2017/12/04(月) 23:05:49.96ID:kqi5W/Ks0
話がそれますが
Git for Windows も 260 を超えるパスは扱えませんでした
cygwin の git は扱えました
2017/12/05(火) 20:30:18.38ID:CrEtjTSR0
新しいNightly入れたがDirectWrite爆速やん
Windows10になって以来GDIではフレーム落ちが鬱陶しかったが
DWではそれが無い分、快適に感じるわ
2017/12/07(木) 07:09:54.28ID:ZA7Y63230
2つのウィンドウへ開いていて、どちらにも行番号が表示されている状態です。

このとき、片方のウィンドウで :setlocal nonumber とすると、
そのウィンドウの行番号だけが非表示になります。

しかし、:setlocal ninumber ではなく :set nonumber としても
そのウィンドウの行番号だけが非表示になります。

number だけでなく、他のものでも同様です。
例えば wrap でも :set と :setlocal が同じ結果になります。

:set と :setlocal の違いは何でしょうか?
2017/12/07(木) 07:25:04.93ID:yNUrvwIy0
その後 :new すると、、
:h local-options
2017/12/08(金) 04:26:24.13ID:BM6nYy010
Laguage server protocol との連携は進んでいますか?
2017/12/08(金) 07:14:52.21ID:ef/e0eR+0
>>660
ありがとうございます。

要するに、:set がすぐさま反映させるのはカレントに対してだけなのですね。
だからぱっと見では :setlocal との違いが分からなかった。
しかし両者の違いは新しくウィンドウやバッファを作った時に現れる。
なぜなら、それらは先ずはグローバルオプションで初期化されるから。

おかげさまで理解できました。
2017/12/11(月) 12:13:19.39ID:VvrireRi0
windows10でgvimにdein.vimを導入してプラグインの管理をしようと考えています。
readmeと個人ブログの記事を参考にgithubのリポジトリからcloneし、_gvimrcにもあれこれ書きました。
call dein#install() を実行し、インストールが完了しました。
この時点で各プラグインの機能が使用できるようになりました。
しかし一度gvimを再起動するとそれらが使えなくなっていました。
あれこれ試した結果、call dein#update()を実行すれば使用できるようになることがわかりました。
試しにgvimrcにcall dein#update()を記述し、起動時にアップデートをかけるようにしてみましたが、思った通りにはなりませんでした。

起動直後からプラグインを使用できる状態にすることはできないものでしょうか?
できるなら、どうしたら良いでしょうか
2017/12/13(水) 07:28:34.81ID:M3CDaS1D0
自己解決できました。
失礼しました。
665642
垢版 |
2017/12/13(水) 22:16:49.36ID:pQu4tnMe0
>>664
どうやって自己解決したのか書いておくと、良い技術者になれるよ
2017/12/14(木) 00:26:09.78ID:z825bZ+o0
>>665
なんでここにわざわざ書くと良い技術者になれるのでしょうか?
2017/12/14(木) 07:56:59.46ID:8QJHZ5QJ0
>>666
これをよめ
http://www.geocities.co.jp/SiliconValley/5656/
2017/12/17(日) 09:57:19.09ID:1RCZlm9a0
Laguage server protocol との連携は進んでいないのですか?
2017/12/17(日) 20:03:29.13ID:efLSqkG90
>>664
死ねゴミクズ
2017/12/27(水) 20:19:06.27ID:pBtN5/XN0
「:view ファイルパス」とすればリードオンリーモードでそのファイルを開きますが、
バッファの内容を編集することはできます。

これをバッファの内容すら編集できなくする方法はありますか?
つまり閲覧やヤンクへのコピーなど、非破壊の操作しかできないようにしたいです。
2017/12/27(水) 21:26:56.05ID:TcBusAuT0
:h -M
2017/12/28(木) 07:09:25.60ID:oqwufRP80
>>671
-M のヘルプを見ることで、modifireble オプションを off にすれば良いことが分かりました。
試したら、意図通りの状態になりました。

ありがとうございました。
2018/01/03(水) 20:31:44.35ID:Y9AqElVY0
:behave mswin
とすると結構普通のエディタのように使えるね

Windows10 vim 8.0 gVimで試した限りだが、
ノーマルモード、インサートモード問わず、Shift+矢印キーで文字列選択や
Ctrl+Ins、Shift+Insでコビー貼り付けができる

ただし、Ctrl+C、Shift+Vはできなかった
貼り付けもインサートモードで何も選択していない状態だと問題ないが
何か選択した状態だと思わぬ所に貼り付けされてしまう
ノーマルモードだと何も選択していなくても同様の事象

でも使えそうだ
2018/01/04(木) 02:56:37.99ID:T6dCv24/0
>>673
VimがVimのキーアサインでない時点で使えないと思うのだが
2018/01/04(木) 10:44:41.45ID:Vk7cVsk+0
>>673
Creamは?Vim使う意味なくなるけどね。
2018/01/05(金) 02:10:38.38ID:lKmv/k980
source $VIMRUNTIME/mswin.vim
も入れたら、Ctrl+C, Ctrl+Vも使えたよ。貼り付けも問題なかった
これなら使いやすいし、ノーマルモードもあるからVimらしさもあるね
gVim Easyはインサートモードしかないようだが

Creamはノーマルモードも使えるみたいだね
でもノーマルだと選択の開始はShit+矢印キーではなくなるのかな
ちょっと試してみよう
677629
垢版 |
2018/01/13(土) 02:59:18.20ID:2ghyYC0g0
gx でURL を開くとき、?以降のパラメータが含まれないようです
?以降のパラメータを含めるような設定はありますか?
2018/01/14(日) 20:20:15.18ID:j8cFEhBB0
netrwの話?
:set isfname+=63 "( '?' の10進表記 = 63)
でもグローバルなんだなこのオプション
viWgx とでもして開くほうがいいかもしらん
2018/02/04(日) 22:09:26.73ID:Ex7WuPiE0
vim 標準搭載のパッケージ管理について質問です。

.vim/pack 下にプラグインを置くことでそのプラグインを使えるようになりますが、
そのプラグインのドキュメントが読み込まれません。

たとえば、vim-surround というプラグインを .vim/pack/pack1/start/vim-surround に置くと、
vim を起動させるだけで surround プラグインが機能します。
しかし、:h surround コマンドを入力してもエラーになりヘルプが見れません。
.vim/pack/pack1/start/vim-surround/doc/surround.txt が存在するのにです。

pathogen を使っていた時は、.vim/bundle にプラグインを置けば、そのドキュメントも利用できたのですが。
標準搭載のパッケージ管理ではドキュメントまでは面倒を見てくれないのでしょうか。
2018/02/05(月) 00:08:13.90ID:XvjhK2Ri0
:helptags /path/to/surround.txt やったらいけるとか?
2018/02/05(月) 11:28:34.02ID:mk5FwJkP0
Vim スクリプトできたのって1998年なのか
2018/02/06(火) 08:06:00.46ID:3hgvlDCi0
久々にいいオプションを見つけた
set isfname-==
'=' をファイル名の一部として認識させない
これによって設定ファイルの中の
option=/path/to/file
のような局面で <C-x><C-f> 補完を使っていける
2018/02/06(火) 20:28:09.23ID:4HyUH8RQ0
>>680
:helptags .vim/pack/pack1/start/vim-surround
としてみましたが、ダメでした。
(surround.txt を引数に入れると、ディレクトリではないと怒られるので )

:set runtimeoath? とすると、そこには
.vim/pack/pack1/start/vim-surround
も含まれてるのですが...
2018/02/06(火) 21:48:13.19ID:+AgQ6OlP0
raspbianにインストールされている標準のvimを使うとC言語など拡張子に合わせてインデントや色分けするので便利でした。
Ubuntuでも同じようにしたいのですが、個別に機能をインスールのではなく補完機能を込み込みにしたvimのパッケージなどってあるんでしょうか?
あとRaspbianのvimはそれ用にカスタマイズされたものなんでしょうか?
2018/02/06(火) 22:26:56.02ID:3aQKGlB00
>>684
色んなプラグインとか設定とかが元々入ってる Vim のディストリはいくつかあるよ
spf13, Janus, SpaceVim あたりが有名どころだろうか
イチから自分で探すの面倒ならこういうのもアリなのかもしらん
2018/02/07(水) 02:02:47.73ID:d3pHNNkU0
>>685
そうなんですね、疑問がスッキリしました。
オススメされたディストリを入れてみます。
ありがとう。
2018/02/07(水) 05:05:49.75ID:3woY5VBb0
Cのシンタックスハイライトやインデントくらいなら公式のVimに付いてくるはず
UbuntuにデフォルトインストールされているVimはtiny版だと思うから、huge版をインストールし直してやればいい。正確なパッケージ名までは知らんが公式リポにあるはず
2018/02/07(水) 19:09:22.81ID:rav/W75F0
Ubuntu使っているならvim-gtk3を入れとけばいいんじゃないかと思う
689名無しさん@お腹いっぱい。
垢版 |
2018/02/07(水) 22:13:21.41ID:v2CcfQmh0
>>682
早速設定したいいね
2018/02/07(水) 23:40:18.65ID:d3pHNNkU0
gtk3(huge)を入れたんだけど自動インデントされません。
tiny消したりしても変化なし、ハイライトはされてます。
2018/02/08(木) 03:50:31.20ID:z0rRyRu/0
>>690
.vimrcにset cindentって書けば有効化できる
動作とか詳しくはググって
2018/02/08(木) 04:12:40.57ID:eZTWGbQ80
>>691
cindentオプションはC言語のインデントプラグインで自動的に有効化(バッファローカル)されるので、普通は手動で :set することはない

>>690
vimrcを作成済みなら、その末尾に
filetype plugin indent on
の一行を追加して、いったんVimを終了してからC言語ファイルの編集を始めてみて
2018/02/09(金) 14:59:51.70ID:5oua0ax+0
>>692
Cでインデント効きました。
嬉しい!ありがとうございます。
2018/02/15(木) 01:44:57.78ID:yLfrC0l60
patch ファイルを開いている場合に、下記例でいうと src/foo.c にジャンプしたいです
単に gf とすると "a/" もパスの一部と解釈されてしまいジャンプできません

diff --git a/src/foo.c b/src/foo.c

今は泥臭いですが a にカーソルを持っていき xx <C-w> f で開いています
(単に xxgf だとバッファが保存されていなくて開けない)

isfname あたりで "a/" を無視するような設定や、
もう少し短いキーストロークで実現する方法はあるでしょうか
2018/02/15(木) 22:07:38.62ID:NTsQ7F5L0
https://github.com/kana/vim-gf-user
696694
垢版 |
2018/02/16(金) 19:09:45.16ID:Fzx+NlT+0
ありがとうございます
試してみます
2018/02/17(土) 00:39:36.85ID:WP383XxW0
vim右下の行列表示で 7,105-71となっているとき
右の71は半角1,全角2として
左の105は半角1、全角3として計算しているようです。
UTF8なら左、Shift_JISなら右の数字を見ると1行のデータ量が分かるいいということであってますか?
2018/03/01(木) 19:25:43.48ID:M8MGtIen0
香り屋さんのを仕事で使ってるんだけど
ctrl-;はやっぱ割り当てられないよね
[キーが遠くて小指が痛いのんだけど、どのキーで妥協すべき?
2018/03/01(木) 21:40:23.05ID:+hKr9yBc0
俺Ctrl+iだわ
2018/03/02(金) 01:15:09.12ID:Bcvc+oSk0
>>698
英語配列だとキーひとつ分左なんだよね、[って。
2018/03/02(金) 01:16:26.83ID:Bcvc+oSk0
>>699
タブ入力する時に使うから割当て変えるの凄いと思った
2018/03/02(金) 02:56:04.11ID:Ncwi+G2w0
>>701
タブ入力はC-v,Tabかな。あんま使わないから
基本プログラミングとかしない。メモ帳と小遣い帳
2018/03/03(土) 21:45:46.26ID:H4zWi9ov0
linux で vim を使っています。

今、6行目の4列目にカーソルがあるとして、
2行目から4行目の範囲の文字列を外部コマンドに標準入力を通して送り、
コマンド処理において標準出力に出力された文字列をカーソルの位置に挿入したいです。

コマンドラインモードで
:2,4! コマンド
とすると、2行目から4行目が消され、2行目にコマンドが出力した文字列が挿入されます。

そうではなく、カーソルの位置に挿入したいのですが、可能でしょうか。
704694
垢版 |
2018/04/23(月) 15:44:09.38ID:lskVF0Hn0
>695
遅レスですが、まんまやりたいことができました
ありがとうございました

ただ、当たり前ですが path から探すので
自分のフォルダ構成だと patch ファイルと同じディレクトリに遷移する必要がありました
そこで下記のマップをして改良してます

nnoremap ,gf :cd %:h<CR>:call gf#user#do("gf", "n")<CR>
2018/05/12(土) 09:02:19.28ID:Xs3iZn7R0
一文字ずつ間にデリミタを入れるように置換したい。

[例]
1749064 --> 1,7,4,9,0,6,4

正規表現を使って一発で置換できるだろうか?

:s/\v(\d)(\d)/\1,\2/g
これを2回適用すればできたけど、なんか不様。
706名無しさん@お腹いっぱい。
垢版 |
2018/05/12(土) 11:19:50.04ID:WzZv1SoL0
>>705
先読みで

:s/..\@=/&,/g

vimの先読みは \@= と書き、その直前の正規表現(この場合二つめの .)がその場所で一致するかどうかを見る
ちなみに & は一致した文字列全体
2018/05/12(土) 12:09:06.89ID:fQpz5LJv0
>>705
試してないけどこれでもいけるかも
s/\d\ze\d/&,/g
2018/05/13(日) 03:18:44.26ID:X8ne/l250
vimの先読み後読みって覚えづらいのよね……
おれ先に(?=)とかで覚えちゃったから余計に
2018/05/13(日) 14:09:54.80ID:lh+oIfnh0
>>706 >>707 でできました。
ありがとうございました。

先読みなどという仕組みがあるのですね。
興味深いので調べてみます。
2018/05/13(日) 17:19:35.36ID:mVufkUsF0
>>708
\zsと\zeのがわかりやすいしね
2018/05/17(木) 05:28:13.18ID:xqetUBaJ0
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
■ このスレッドは過去ログ倉庫に格納されています
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

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