Biasanya terminal memungkinkan pemilihan teks dengan mouse, tetapi shell tidak dibuat sadar akan hal ini. Jadi sayangnya tidak bash
, zsh
, fish
atau es
dapat mendukung editing mouse berbasis. Saya pikir untuk melakukannya, mereka perlu mengambil kendali lebih besar atas terminal.
Namun (dan ini adalah sedikit peregangan) jika Anda membuka Vim atau GVim, dan kemudian masukkan perintah shell menggunakan:
:!...
maka Anda dapat mengklik mouse Anda untuk melompat ke mana saja di dalam barisan . (Anda harus :set mouse=a
terlebih dahulu jika itu belum diaktifkan.) Tombol pengeditan dalam mode ini dapat dilihat dengan:help cmdline-editing
Vim juga memiliki mode histori perintah yang cukup kuat, yang dapat dicapai dengan menekan q:. Dari sana Anda dapat menarik, menghapus, dan menempel menggunakan perintah mode normal Vim. Dalam mode ini, Anda bisa mendapatkan pilih-dengan-mouse dan kemudian menghapus fitur yang Anda inginkan (dengan menekan d).
Peringatan penting di sini adalah bahwa Vim tidak benar-benar menjaga sesi live shell tetap berjalan. Setiap perintah yang Anda jalankan akan dijalankan dalam proses anak. Jadi setiap perubahan yang dibuat ke variabel lingkungan atau opsi shell oleh proses anak akan hilang.
Yang mengatakan, Anda dapat memodifikasi variabel lingkungan dari dalam proses Vim, dan menggunakannya dari baris perintah Vim, dan mereka bahkan akan diekspor ke proses anak:
:let $FOO="bar" " the $ and the quotes are mandatory here
:echo $FOO " Vim's own echo command
bar
:!echo "$FOO" " Passing the variable to a shell command
bar
:!bash " Opening a child shell
$ echo "$FOO"
bar
Jadi, jika Anda mau berpura-pura bahwa Vim sebenarnya adalah sejenis shell aneh, maka Anda dapat menikmati fitur pengeditan lanjutan! Mungkin kekurangan terbesarnya adalah Anda harus memulai setiap perintah dengan mengetik salah satu :!
atauq:
Oh dan omong-omong, jika Anda ingin mendapatkan output dari perintah shell ke buffer Vim Anda saat ini, Anda bisa melakukan itu seperti ini (tetapi berhati-hatilah itu akan mengganggu baris Anda saat ini):
:,!ls