Выбор текста в терминале без использования мыши

41

Я собираюсь нажать enter, чтобы запустить команду в терминале, но перед этим я хочу скопировать команду в буфер обмена, не используя мышь.

Как?

Если вы находитесь где-то, кроме терминала, Ctrl + Home делает это.

Есть ли способ произвольного выбора текста, подобного этому в терминале?

EDITED:

  • предположим, что использование других программ, таких как screen , не является хорошей альтернативой.
  • текст должен быть вставлен за пределы терминала, поэтому Ctrl + y и подобные последовательности не решают его либо
задан Strapakowsky 31.05.2013 в 04:50
источник

5 ответов

12

Привязка к следующему ярлыку:

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

Теперь после использования Crtl + P ваша строка будет скопирована в буфер обмена. Вы можете вставить его в терминал, используя:

xsel

И в любое приложение X, используя среднюю кнопку мыши.

    
ответ дан Nykakin 31.05.2013 в 08:28
источник
11

Если вы используете одну из оболочек, которая понимает ключи emacs (bash, csh и т. д.), вы можете скопировать текущую команду:

  1. control-A приведет вас к началу строки.

  2. control-K убьет всю строку, которую вы только что ввели.

  3. control-Y вернет текст назад.

Затем позже вы можете control-Y вернуть текст обратно, чтобы вставить текст обратно в качестве ввода в редактор командной строки оболочки.

См. man bash , а затем, когда он появится, введите /emacs , а затем пару n (далее), чтобы переместить вас в раздел READLINE.

    
ответ дан ElderDelp 31.05.2013 в 06:25
6

Ближайшим, о котором я могу думать, является ctrl + u , ctrl + y
Это будет удаляться от проклятия до начала строки, а затем вставить из буфера чтения. Это не совсем то же самое, что и буфер обмена, но вы можете вставлять внутри оболочки, если это то, что вам нужно.

    
ответ дан demure 31.05.2013 в 05:03
5

Существует программа, называемая экраном. Он создает текстовую оконную систему, которая позволяет вам переключаться между несколькими экземплярами. Но он также позволяет вам выбирать текст.

sudo apt-get install screen

Эта команда устанавливает его.

Затем введите screen

Вы используете ctr-a для запуска последовательности команд. Затем нажмите esc, и ваш курсор будет двигаться в любом направлении. Нажмите enter, чтобы начать выбор текста, перейдите к конечной точке, нажмите клавишу ввода еще раз. Это будет скопировать в буфер.

Затем ctr-a, а затем} вставляет

Подробнее о других командах здесь Ссылка

    
ответ дан Meer Borg 31.05.2013 в 05:00
0

Если вы находитесь внутри vim, вы можете визуально выбрать одну или несколько строк с помощью Shift + v , а затем использовать привязку, например. y y , чтобы передать выделение xclip .

Добавьте привязку к вашему vimrc:

vnoremap yy :w !xclip -selection clipboard<CR><CR>

Для этого требуется xclip , который находится в репозитории aptitude Debian / Ubuntu.

xclip хранит stdin, с опцией -selection clipboard также выталкивает stdin в системный буфер обмена.

Таким образом, вы также можете использовать xclip в общем виде с терминала, например, чтобы скопировать весь файл в системный буфер обмена:

cat myfile | xclip -selection clipboard

Если вы также можете создать псевдоним, например:

alias cb="xclip -selection clipboard" 
    
ответ дан Kris 16.08.2016 в 10:21