Я делаю Ctrl+W
в терминале Mac, чтобы удалить слово (удаляет, где курсор находится в начале слова)
Как мне поступить наоборот - удаляет откуда курсор до конца слова?
Это зависит от вашей оболочки и ее активного режима редактирования командной строки.
Для оболочки с режимом редактирования командной строки Emacs ( set -o emacs
в некоторых оболочках) используйте Alt+D(по какой-либо причине это не работает в macOS, но печатает символ ∂
, используйте Escdвместо этого).
Для оболочки с режимом редактирования командной строки Vi ( set -o vi
в некоторых оболочках) используйте Escdw(это также работает на macOS).
bash
invi
, вы можете использовать,dW
чтобы удалить ихДля дисциплины линии tty
^W
удаляет предыдущее слово с пробелом .В
vi
редакторе в режиме вставки,^W
удаляет в обратном направлении до начала первой последовательности alnums или не-alnums (наfoo-+-bar.. baz
, он сначала удаляетbaz
, а затем..
, а затемbar
, а затем-+-
, потомfoo
).В
emacs
редакторе^W
удаляет с позиции курсора до метки (той, которую вы установили Ctrl+Space).Некоторые линейные редакторы, такие как
readline
(используетсяbash
,gdb
...),zle
(используетсяzsh
),pdksh
вvi
режиме, ведут себя какvi
в этом отношении, а вemacs
режиме ведут себя как дисциплина линии tty (неemacs
).libedit
(используется BSD оболочки или ( по желанию)dash
),tcsh
, AT & Tksh
, вemacs
режиме, ведет себя как ,emacs
где^W
удаления к отметке (первоначально в начале буфера).Чтобы удалить слово вперед, в
vi
редакторе вы должны сделать это в командном ( обычном ) режиме,dw
чтобы удалить начало следующей последовательности чисел или других знаков (или конец строки) иdW
удалить в следующая последовательность незаполненных (кулон^W
дисциплины линии tty).В
emacs
редакторе строк Meta-Dудалите до конца следующую последовательность символов alnum. Операторы движения слова ( Meta-B, Meta-F) ведут себя аналогично.Редакторы командной строки в
vi
режиме ведут себя какvi
, но вemacs
режиме у вас есть две основные школы:tcsh
школа иksh
школа.ksh
Школа (readline
,ksh
,yash
) ведет себя в основном какemacs
(fish
поведение «s немного отличается в том , как он относится к не-, не цифрой , буквой, пробельные символы в обоихemacs
иvi
режиме).В
tcsh
школе (tcsh
,libedit
,zsh
), движение слова основано на пробельные разделителях слов так согласуются с TTY дисциплины линии - й^W
в этом отношении.В
zsh
, поведение настраивается с различными стилями слова для всех виджетов движения слова.Для
readline
, вы можете получитьtcsh
школу (и есть Meta-Dудалить такие же слова , как это Ctrl-Wделает), добавив к вашему~/.inputrc
:Или, с другой стороны, выровняйте
^W
другие виджеты движения слов (ведите себя как Meta-Backscape) с помощью:Что касается того, что Metaключ, посмотрите там .
источник
В Linux попробуйте
Ctrl+k
удалить, откуда курсор находится до конца слова.Ниже перечислены несколько других ярлыков (работающих в Linux):
Ctrl+e
-> берет курсор в конце слова.Ctrl+t
-> Поменяйте местами алфавиты.Ctrl+y
-> добавляет постфикс "чч" к текущему слову.Ctrl+u
-> Удаляет всю строку.Ctrl+o
-> Работает так же, как клавиша Enter.Ctrl+p
-> Работает так же, как кнопка со стрелкой вверх.Ctrl+a
-> Подводит курсор к начальной позиции команды.Ctrl+d
-> Закрытие терминала.Ctrl+f
-> Перемещает курсор вперед на один символ.Ctrl+h
-> Работает так же, как клавиша Backspace.Ctrl+j
-> Работает так же, как клавиша Enter.Ctrl+m
-> Работает так же, как клавиша Enter.Ctrl+b
-> Работает так же, как клавиша со стрелкой вправо. 14Ctrl+4
-> Удаляет словоисточник
Ctrl+k
удаляет до конца строки .Ctrl+u
удаляет всю строку (если курсор находится в конце).Ctrl+d
отправляет EOF.Ctrl+e
идет до конца очереди и т. д.