2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

netrwを気持ちよく使いたい

Posted at

あけましておめでとうございました。年末くらいからvim-jpのslackに忍び込んで読書会に参加したりしてモチベーションが高かったのでスクリプトが出来ました。

netrwのブックマーク先にダイレクトに移動するスクリプト

とりあえずソースから

netrwbook.vim
function! netrwBook#open(...) abort
	if a:0 > 0 && a:1 != 0
		echo a:1
		let selectIdx = a:1
	else
		let idx = 1
		for n in g:netrw_bookmarklist
			echo printf('%3d: %s',idx,n)
			let idx += 1
		endfor
		let selectIdx = input('番号と<Enter>を入力して下さい (空でキャンセル): ')
	endif
	try
		if selectIdx <= 0
			throw 'E684'
		endif
		execute 'silent Explore '.g:netrw_bookmarklist[selectIdx-1]
	catch /E684/
		if selectIdx != ''
			echo "\rブックマークのインデックスが範囲を超えています。"
		endif
	endtry
endfunction

なにこれ

vimのノーマルモードのキーマップgbが空いていて、netrwと共通なのでnoremap gb :<C-u>netrwBook#open(v:count)とかで登録しておくとノーマルモードから直にnetrwのブックマークを開けます。引数がなければ入力待ち、netrwの仕様どおり3gbで3番目のブックマークも出来る様になっています。

最近覚えたこと

v:countの使い方

vim-jpのslackで教えてもらいました。<C-u>でコマンドのカウントを無視して、変数v:countを使ってコマンド内にカウントの数値を使うことが可能なんだけど、変数展開に気をつけること。デフォ値を1にしたい時はv:count1が使える。

printf()がある

全然気がついてなかった…

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?