Cara mengkonfigurasi Ctrl + w sebagai menghapus kata di zsh


Jawaban:


15

Ini cuplikan dari .zshrc yang saya gunakan:

my-backward-delete-word() {
    local WORDCHARS=${WORDCHARS/\//}
    zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '^W' my-backward-delete-word

Saya ingat ini adalah sumber aslinya: http://www.zsh.org/mla/users/2001/msg00870.html


Terima kasih! Saya memasukkan kode ini ~/.zshrcdan bekerja dengan sempurna!
ironsand

emacsTabel pengikatan kunci default di ZLE mengikat ^ W ke backward-kill-wordbukan ke backward-delete-word, perhatikan.
JdeBP

10

Hanya untuk informasi Anda, saya menemukan solusi ini di sini untuk menjadi jauh lebih elegan. Saya mengutip:

Pilihan lain adalah untuk mengatur WORDCHARS(karakter non-alfanumerik diperlakukan sebagai bagian dari kata) untuk sesuatu yang tidak termasuk /.

Anda juga dapat men-tweak ini jika Anda lebih suka ^wuntuk istirahat di titik, garis bawah, dll. Dalam ~/.zshrcSaya punya:

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

UPDATE (2 / Mar / 2020)

Seperti @Patryk tunjukkan pada komentar di bawah, ini tidak berhasil ZSH >= 5.7. Ini adalah pembaruan yang saya uji dan kerjakan zsh 5.8 (x86_64-apple-darwin18.7.0).

autoload -U select-word-style
select-word-style bash

export WORDCHARS='.-'

Ini membuat M-dkurang bermanfaat.
Toothrot

1
Ini entah bagaimana tidak berfungsi lagi zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk

@Patryk Terima kasih telah memperhatikan! Saya memperbarui jawaban saya!
Anastasios Andronidis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.