-
Notifications
You must be signed in to change notification settings - Fork 11
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
マルチ選択領域機能の考察 #977
Comments
ポイントは操作対象(=選択領域)を編集できるって点。 |
こんな発表だったんですね…すごい。
ファイル内の全てを部分的に対象とできる訳ですから、可能性はかなり広がると思います。 あと 3 を書いてて思ったんですが、折り畳みは「全ての関数以外を折り畳み」とかできると嬉しそうなので、それを実現するために「選択した複数の選択領域を反転(選択した領域以外を選択)」とかできると便利そうです。 |
プラグインだと https://github.com/terryma/vim-multiple-cursors こういう感じでしょうか? |
マルチ領域選択欲しいです! ちなみに追加した選択領域と、普通にvなどでvisual modeで選択した追加していない領域に対する扱い(操作)は分ける用にした方がいいですよね? たとえば件のデモの例で言うと、 |
マルチ選択ではないですが, vim-mode-plus のOccurrence が解決している(と僕が思っている)問題を つくりました https://gist.github.com/haya14busa/0b3587918b97e7cbe28c7b4890beb5b7 gif はvim-mode-plusの最後から2番目のgif 相当で3つの導入された機能が全部含まれてる.
あくまでdot-repeatを拡張して似た操作を実現する目的. そもそもvim-mode-plusが解決してる問題は端的に言うと ドットリピート便利だけどドットリピート自体を繰り返すのが面倒くさいよね? ということだと思う. 普通にvimの機能で似たようなことをすると vim-mode-plus はそこで "occurence modifier" という概念を導入して, もちろん先に選択したり, multiple-curosr 機能を使うことによってインテラクティブに編集できるという強みもある. そこでドットリピートを対象のtextobj内のそれぞれのoccurence相当に適用する手段があればドットリピートをリピートするのが面倒くさい問題は vim-mode-plusと比べた際の欠点としては操作が2度(以上)行われる(最初のoperationとg.)ってところだけど, まぁもちろん突貫工事でつくったものでアレな部分もありそうだし,完全にvim-mode-plusの機能をバックポートしたとは思ってませんが,こういう問題解決もあるのではというアレです. マルチ選択領域機能 がいらないとかいうわけではなくて便利だとは思ってます. |
仕事早すぎワロタ 😄 👍 |
この説明はなるほどと思いました。 👍 |
今のところ、操作としては分けたほうが良いと思っていますが、 例を示すと、マルチ選択領域のうち最初のもの(0番目)をプライマリとしてVisual選択として利用。 完全に妄想です。 |
今更のコメントですが、Occurrence の機能。@koron さんの指摘通り、マルチカーソル、マルチセレクションあるとやりやすいです。 ターゲット(a-function) の選択範囲の中の occurrence(マーカー) を選択し直した時点で、シングルセレクションからマルチセレクションになり、後は <追記> Atom の vim-mode-plus で occurrence を導入した背景
面倒。imperative(not declarative). この関数内の
occurrence をマークする。マークはバッファ全体を対象に行われる。 occurrence として マークする手段として2つの方法を用意しており、
|
Vim script でできる範囲ですが、実験的なものを書きました。興味のある方がいらっしゃれば動くか試してもらえると嬉しいです。
|
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
報告の内容
http://qiita.com/t9md/items/1c2f27684703847de2be で示された Occurrence を実現するために、
マルチ領域選択 があったらどうかと考えました。
リンク先のデモではオペレーターの拡張としての実装でしたが、より一般的に考えて
Visualのような選択領域を自在に追加・削除でき、複数の選択領域を管理できる
とすれば色々なことができるのではないかと。
基本的な操作としては以下の2つです。
この2つの基本操作をC言語やキー操作からだけではなくVim scriptなどからも使えるようにして、
例えば、特定のパラグラフ中のあるパターンにマッチする場所を選択領域に加える、とか
既に選択領域にとなっているもののうち任意の範囲を解除する
といった高度な操作が実装可能になります。
備考
c
,s
,d
などの操作対象になる、という前提ですとりあえず実現のためのコストは考えないものとして、
このような仕組みがあったと仮定して、どのようなことができるのか
それは本当に便利なのか、少し考えてみてもらえたらな、と思ってissueにしました。
The text was updated successfully, but these errors were encountered: