質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

2回答

839閲覧

VimのExコマンドにvisualモードで選択中の文字列を渡したい

java_shin

総合スコア22

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2021/11/25 03:12

visualモードで選択中の文字列をvimのコマンドラインで実行する関数に引き渡してコマンドを実行できるようなキーマッピングを作成したいです。どうやったらよろしいでしょうか?
最終的には次の様にコマンドが実行されるようにしたいです。

vnoremap マッピングキー "実行コマンド + 選択中の文字列"
みたいなのを想定しております。

  1. visalmode で選択
  2. マッピングキーを入力
  3. 実行コマンドに選択中の文字列が渡された状態で実行される。

といった流れで考えております。
どなたか教えてください。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

私は以下のような設定を使っています
zレジスタに一旦コピーして、コマンド領域に貼り付け」です

vim

1xnoremap [key] "zy:<C-u>[command] <C-r>z<CR>

[key][command]を使いたいものに置き換えてください
また、末尾のCRを除去すれば実行前に編集することもできます

投稿2021/11/25 05:14

kawarimidoll

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

java_shin

2021/11/25 21:28

動きました!有難うございます!!! xnoremap <leader>fv "zy:<C-u> Telescope project<cr> <C-r>z 最終的にこういった形になりました。 勉強になります。作動させるコマンドにもそのまま"zy を使用して選択範囲をコピーしてそのまま貼り付けたい場所に<C-r>zで張り付けて文字列として一緒くたにコマンド実行できるんですね。 こういった使用は:helpのどこに書いてますでしょうか?
kawarimidoll

2021/11/26 06:00

今回の件に直接関係するヘルプですと、以下の2点ですかね :help " :help c_CTRL-R 設定を作ったのが結構前なので、うろ覚えですが、以下のような流れで調査・実装しました 1. 「選択範囲をコマンドラインで使えないか」と考える 2. 「コピペすれば良いのではないか」と思いつく 3. 「vim コマンドライン ペースト」で検索してみる 4. <C-r>でペーストできることを知る 5. :help c_CTRL-R を確認して、実際に設定してみる
java_shin

2021/11/26 21:26

思考法まで書いていただけるとは、ありがとうございます。 これを参考にしてもっとvim力を上げたいです
guest

0

引数じゃないんですが、選択したテキストが必要というなら、こういうやり方もあります

vim

1 let old = getreg('9') 2 3 normal! gv"9y 4 let word = getreg(9) 5 6 " do something 7 8 " restore old data 9 call setreg(9, old)

投稿2021/11/25 05:08

編集2021/11/25 05:09
gorilla0513

総合スコア128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

java_shin

2021/11/25 21:35

ご回答ありがとうございます。 vimScriptでいろいろ作りたいときに便利そうですね。 というかいつもお世話になっております。(Session.Vim,Translate.vim) vimScript自作できるように精進していきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問