Завершение слов на экране как в VIM (Bash или Tmux)

Для двоичного файла к шестнадцатеричному использованию: инструмент xxd в Linux и для двоичного файла к десятичному числу можно использовать qalculate инструмент.

Для справки относительно типа xxd xxd --help или man xxd в Linux.

10
24.06.2014, 23:52
3 ответа

Я думаю, что функция, которую ищет OP, называется dabbrev-expand в мире Emacs:

Раскройте слово в буфере до точки в виде динамического аббревиатуры, на поиск в буфере слов, начинающихся с этой аббревиатуры (v-expand).

xterm также имеет dabbrev-expand, но он немного менее умный, чем аналог Emacs, но он очень полезен для меня, и одна из причин, по которой я переключился на xterm. Внутри окна xterm можно использовать пользовательскую привязку клавиш, указанную в ~/.Xresources для вызова dabbrev-expand на заданной строке. Например, в моем ~/.Xresources (я использую uxterm, Unicode версию xterm):

UXTerm*VT100.Translations: #override \n\
     Meta <Key>/:dabbrev-expand() \n\

Внутри xterm окна я могу использовать M-/ (ALT + /) для вызова dabbrev-expand. xterm будет искать все видимые на экране строки, которые начинаются с букв, которые я набрал. Пример:

$ echo a_very_long_string bye by
$ a_v

Если бы я нажал M-/ теперь xterm расширил бы a_v до a_very_long_string. К сожалению, как я уже говорил xterm не такой умный и его dabbrev-expand функция будет работать только на полных строках. Так что в Вашем случае is будет расширен до issue540, а не до issue547314, потому что issue547314 является частью origin/issue547314 (подумайте об этом как о \b в регулярных выражениях, это немного похоже, хотя большинство движков регулярных выражений будут улавливать оба вхождения строк issue в \bissue. +\b). Но можно набрать или , а затем задать M-/. xterm сначала расширит или до origin/v2.1, это не то, что мы хотим, так что нажмите M-/ еще раз и xterm расширит его до origin/issue547314. Теперь, если Вы используете Bash, Вы можете сделать M-b, C-w и C-e, чтобы удалить origin/ part. Подводя итог, dabbrev-expand внутри xterm не так хорош, как в Emacs (и Vim, наверное), но все же быстрее, чем переписывать длинные строки от руки и менее подвержен опечаткам. И в большинстве случаев он будет расширяться прямо до нужной строки без необходимости удалять лишние части. Нужно просто привыкнуть - посмотрите на нужную строку по курсору и убедитесь, что ей не предшествует что-то другое, и если она набрала предыдущую часть и удалила ее после расширения.

Обратите внимание, что xterm по умолчанию не скомпилирован со свойством dabbrev-expand и его необходимо явно включить. Однако, версия xterm в репозиториях Ubuntu скомпилирована с помощью функции dabbrev-expand, и вы можете использовать ее сразу же.

4
27.01.2020, 20:03
[119278] Бэш в качестве подобного объекта, называемого "Бэш-комплект". Вы можете использовать его, нажав клавишу [119839]Tab[119840] при предоставлении аргументов командам, когда вы их набираете.

Пример

which prog

Если я начну с ввода [119841]ls[119842], а затем дважды нажму [119843]Tab[119844], вы заставите Bash предоставить список подходящих файлов (и переключателей командной строки) к любой команде, которую вы пытаетесь использовать:

type -P prog

# some examples using: type -P cmd
$(type -P prog) arg1 arg2 arg3 ...
myls=$(type -P ls) && $myls -l

И вот пример с переключателями:

help type

# The -P flag forces a PATH search for each NAME, even if it is an alias,
# builtin, or function, and returns the name of the disk file that would
# be executed.

Setup?

help command
command -p prog

Моя установка уже включала правило для [119845]git[119846]:[12150]Установка этого файла была выполнена, когда я установил пакет [119847]git[119848]. Я на Fedora 19, но это должны делать и другие дистрибутивы.[12151]Глядя на файл правил, он объясняет, что это облегчит автозавершение в следующих ситуациях:[12152]Так что это должно "просто сработать" для вас.[119295]

1
27.01.2020, 20:03

Вы можете сделать что-то подобное с extrakto:

  • нажмите tmux prefix + tab, чтобы начать экстракто
  • нечеткий поиск текста/пути/url
  • нажмите
    • tabчтобы вставить его в текущую панель,
    • enter, чтобы скопировать его в буфер обмена,
    • ctrl-o, чтобы открыть путь/адрес, или
    • ctrl-eдля редактирования с помощью$EDITOR
1
27.01.2020, 20:03

Теги

Похожие вопросы