web-dev-qa-db-ja.com

最後の2つのコマンドライン引数を交換するにはどうすればよいですか?

$ ln -s ./dir/target.txt /path/to/source.txt{cursor here}

コマンドラインでファイルを入力したファイル名を交換するにはどうすればよいですか? Alt+T ファイル名ではなく単語を交換し、結果としてln -s ./dir/target.txt /path/to/txt.sourceになります。

理想的には、ソリューションは"filenames with quotes.txt"も正しく解釈する必要があります。

Readlineやbashの設定、または既存のショートカットの巧妙な使用によってそれを行うことができますか?

5
Vi.

this に基づく部分的な回答。 {}はカーソルを示します:

$ ln -s ./dir/target.txt /path/to/source.txt{}

Ctrl+W (一度では不十分な場合はこれを繰り返しますが、しないでください Backspace

$ ln -s ./dir/target.txt {}

Ctrl+ {}、 、 

$ ln -s {}./dir/target.txt 

Ctrl+Y、 Space

$ ln -s /path/to/source.txt. {}/dir/target.txt

準備ができました。

6
Vi.

これは、bangコマンドを使用して実行できると思います。

!:0 !:2 !:1

!:0 Word designator 0, the zeroth Word.
!:n The nth Word.


man bash

単語指定子、セクション。

4
Leo Gutiérrez