Bagaimana cara saya mengedit perintah shell saat ini di VI

31

Saya telah melihat di blog di mesin Linux Anda dapat mengedit perintah bash shell saat ini di VI (atau apa pun EDITOR diatur ke) dengan menekan ctrl-x, ctrl-e.

Ini sepertinya tidak bekerja pada 10.8. Ada ide tentang cara mengedit perintah bash saat ini di editor default?

Scott Walter
sumber
Ini seharusnya bekerja di 10.8 (setidaknya itu berlaku untuk saya). Apakah Anda mencoba untuk membatalkan FCEDIT dan EDITOR?
nohillside
Dokumentasi untuk C-xC-e ada di sini - apa yang ada di VISUALvariabel Anda ?
glenn jackman
ini bukan tentang 10.8. Saya berada di 10.8 dan berfungsi baik dengan saya. Saya tidak mengubah apa pun di .bash_profile saya untuk mengaktifkan ini.
Vincent
1
Catatan: Pertanyaan Apple.SE ini pada dasarnya sama dengan pertanyaan Pengguna Super "Saya menggunakan Bash dalam 'mode vi'. Apa urutan hotkey untuk mengedit baris perintah saat ini menggunakan editor eksternal?"
tak terlupakan
1
Saya baru menyadari bahwa saya sedang melakukan Ctrl + (x, e) (menahan ctrl, menekan x, menekan e, melepaskan kontrol) - inilah mengapa tidak bekerja untuk saya. Ketika saya berubah menjadi menekan dua sapuan jelas Ctrl-x, lepaskan Ctrl, Ctrl-e - maka semuanya mulai bekerja dengan sempurna!
Dimitry K

Jawaban:

32

Anda ingin set -o vi(tambahkan ke Anda ~/.bashrc). Kemudian, untuk mengedit baris saat ini, tekan saja Escuntuk masuk ke mode perintah.

Lihat http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Mode

Untuk mengedit perintah saat ini dalam editor layar penuh, atur VISUALvariabel lingkungan Anda ke vim(saya asumsikan Anda inginkan vim), kemudian dalam mode perintah di komentar saat ini, tekan v.

glenn jackman
sumber
5
menekan "v" adalah saus rahasia yang saya lewatkan. Terima kasih.
Scott Walter
2
Apakah mungkin untuk mendapatkan vperintah ini saat dalam mode emacs (non-vi)?
Alex Kahn
10
Cukup lakukan Ctrl-X lalu Ctrl-E.
albapa
7

Anda edit-and-execute-commandmungkin tidak terikat untuk vimode. Mencoba:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

Untuk membuatnya permanen, tambahkan baris itu ke ~/.inputrcfile Anda .

(melalui jawaban ini ; kredit ke @ unforgettableid untuk tautannya)

rebus
sumber