Help us understand the problem. What is going on with this article?

VimperatorからVivaldi + cVimに乗り換えた

More than 1 year has passed since last update.

少し前にVimperatorからVivaldi+cVimに乗り換えて、とりあえず満足している(そして戻る場所もなくなってしまった)ので設定とかの覚書を。

cVimとは

ブラウザ操作をvimっぽくアレできるChrome extension。

Vimperatorの代替になりそうなものは色々と試したけれど、これが一番Vimperatorっぽかった印象。

Vimp代替として求めていたもの

Vimっぽい操作以外に最低限これだけ欲しかった。

  • 外部ファイルで設定ができること
  • qmark
  • 特定サイトでの設定変更
  • copy.js的な機能

ChromeじゃなくてVivaldiにしたのはデフォルトでタブを縦に並べられるという程度の理由。

設定ファイルの管理

cVimはgist上から設定を読み込めるので楽。ローカルにファイルを置いて読み込むこともできるっぽいけど以前試した時に上手く行かなかったのと、他の端末で設定使いまわす場合を考えるとgistからの読み込みの方が楽だったのでそれ以降試してもいない。

gistの方編集してから実際に読み込めるようになるまでちょっと時間がかかる気はする。

qmark

設定ファイルを編集しないと追加できないというのは若干面倒。

let qmark l = ["https://feedly.com/i/latest"]
let qmark m = ["https://mail.google.com/mail/u/0/"]
let qmark M = ["https://moneyforward.com/"]
let qmark t = ["https://twitter.com/"]
let qmark T = ["https://www.tumblr.com/dashboard"]
let qmark B = ["https://bookmeter.com/home"]
let qmark b = ["http://b.hatena.ne.jp/Rion778/hotentry"]
let qmark d = ["http://rion778.hatenablog.com/"]
let qmark g = ["https://gist.github.com"]
let qmark G = ["https://github.com/nozma"]
let qmark c = ["https://gist.github.com/nozma/c0417ffae4aeff5ff76ba6538e51f76a/edit"]

特定サイトでの設定変更

Vimperatorよりも「どうして設定できない(orできる)のか分からない」ということが無い気がする。

site 'http://reader.aol.com/*' {
  set numerichints
  unmap j k J K v V
}
site 'https://mail.google.com/*' {
  set numerichints
  unmap j k J K ? x I u n p e v
}
site 'https://paiza.io/*' {
  set numerichints
  iunmap <C-n> <C-p> <C-a> <C-e> <C-f> <C-b> <C-k> <C-y> <C-z> <C-v>
}
site 'https://feedly.com/*' {
  set numerichints
  unmap gm gg ga gl " g*は効かない。Insertモード有効にすると効く。
  unmap j J k K n p v V o m M x s f c
}

copy.js的なコマンド

cf. vimperatorの代替としてcVim入れてみた - Qiita

" copy.js like command
" yank '%url%'
copyUrl() -> {{
  RUNTIME('getRootUrl', function(url) {
    let ret = url;
    Clipboard.copy(ret);
    Status.setMessage(ret, 2);
  });
}}
map <Leader>u :call copyUrl<CR>

" yank '%title% - %url%'
copyTitleUrl() -> {{
  RUNTIME('getRootUrl', function(url) {
    let ret = document.title + " - " + url;
    Clipboard.copy(ret);
    Status.setMessage(ret, 2);
  });
}}
map <Leader>c :call copyTitleUrl<CR>

" markdown style
copyTitleUrlM() -> {{
  RUNTIME('getRootUrl', function(url) {
    let ret = "[" + document.title + "](" + url + ")";
    Clipboard.copy(ret);
    Status.setMessage(ret, 2);
  });
}}
map <Leader>m :call copyTitleUrlM<CR>

" chatwork style
copyTitleUrlC() -> {{
  RUNTIME('getRootUrl', function(url) {
    let ret = "[info][title]" + document.title + "[/title]" + url + "[/info]";
    Clipboard.copy(ret);
    Status.setMessage(ret, 2);
  });
}}
map <Leader>C :call copyTitleUrlC<CR>
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away