Replies: 11 comments
-
ポイントは操作対象(=選択領域)を編集できるって点。 |
Beta Was this translation helpful? Give feedback.
-
こんな発表だったんですね…すごい。
ファイル内の全てを部分的に対象とできる訳ですから、可能性はかなり広がると思います。 あと 3 を書いてて思ったんですが、折り畳みは「全ての関数以外を折り畳み」とかできると嬉しそうなので、それを実現するために「選択した複数の選択領域を反転(選択した領域以外を選択)」とかできると便利そうです。 |
Beta Was this translation helpful? Give feedback.
-
プラグインだと https://github.com/terryma/vim-multiple-cursors こういう感じでしょうか? |
Beta Was this translation helpful? Give feedback.
-
マルチ領域選択欲しいです! ちなみに追加した選択領域と、普通にvなどでvisual modeで選択した追加していない領域に対する扱い(操作)は分ける用にした方がいいですよね? たとえば件のデモの例で言うと、 |
Beta Was this translation helpful? Give feedback.
-
マルチ選択ではないですが, 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の機能をバックポートしたとは思ってませんが,こういう問題解決もあるのではというアレです. マルチ選択領域機能 がいらないとかいうわけではなくて便利だとは思ってます. |
Beta Was this translation helpful? Give feedback.
-
仕事早すぎワロタ 😄 👍 |
Beta Was this translation helpful? Give feedback.
-
この説明はなるほどと思いました。 👍 |
Beta Was this translation helpful? Give feedback.
-
今のところ、操作としては分けたほうが良いと思っていますが、 例を示すと、マルチ選択領域のうち最初のもの(0番目)をプライマリとしてVisual選択として利用。 完全に妄想です。 |
Beta Was this translation helpful? Give feedback.
-
今更のコメントですが、Occurrence の機能。@koron さんの指摘通り、マルチカーソル、マルチセレクションあるとやりやすいです。 ターゲット(a-function) の選択範囲の中の occurrence(マーカー) を選択し直した時点で、シングルセレクションからマルチセレクションになり、後は <追記> Atom の vim-mode-plus で occurrence を導入した背景
面倒。imperative(not declarative). この関数内の
occurrence をマークする。マークはバッファ全体を対象に行われる。 occurrence として マークする手段として2つの方法を用意しており、
|
Beta Was this translation helpful? Give feedback.
-
Vim script でできる範囲ですが、実験的なものを書きました。興味のある方がいらっしゃれば動くか試してもらえると嬉しいです。
|
Beta Was this translation helpful? Give feedback.
-
報告の内容
http://qiita.com/t9md/items/1c2f27684703847de2be で示された Occurrence を実現するために、
マルチ領域選択 があったらどうかと考えました。
リンク先のデモではオペレーターの拡張としての実装でしたが、より一般的に考えて
Visualのような選択領域を自在に追加・削除でき、複数の選択領域を管理できる
とすれば色々なことができるのではないかと。
基本的な操作としては以下の2つです。
この2つの基本操作をC言語やキー操作からだけではなくVim scriptなどからも使えるようにして、
例えば、特定のパラグラフ中のあるパターンにマッチする場所を選択領域に加える、とか
既に選択領域にとなっているもののうち任意の範囲を解除する
といった高度な操作が実装可能になります。
備考
c
,s
,d
などの操作対象になる、という前提ですとりあえず実現のためのコストは考えないものとして、
このような仕組みがあったと仮定して、どのようなことができるのか
それは本当に便利なのか、少し考えてみてもらえたらな、と思ってissueにしました。
Beta Was this translation helpful? Give feedback.
All reactions