Как выделять текст в терминале
Выделение текста в терминале без использования мыши
Я собираюсь нажать Enter, чтобы запустить команду в терминале, но перед этим я хочу скопировать команду в буфер обмена без использования мыши.
Если вы где-то, кроме терминала, Ctrl + Home делает это.
Есть ли способ произвольно выбрать такой текст в терминале?
Редакция:
Привязать следующий ярлык:
Теперь после использования Crtl + P ваша строка будет скопирована в буфер обмена. Вы можете вставить его в терминал, используя:
Если вы используете одну из оболочек, которая понимает ключи emacs (bash, csh и т. Д.), То вы можете скопировать текущую команду:
control-A приведет вас к началу строки.
control-K убьет всю строку, которую вы только что вошли.
control-Y вернет текст обратно.
Затем вы можете control-Y вернуть текст обратно, чтобы вставить текст обратно в качестве ввода в редактор командной строки оболочки.
Посмотрите, man bash а затем, когда он появится, введите, /emacs а затем пару n (далее), чтобы перейти к разделу READLINE.
Есть программа под названием screen. Он создает систему текстовых окон, которая позволяет переключаться между несколькими экземплярами. Но это также позволяет вам выбрать текст.
Эта команда устанавливает его.
Затем введите screen
Вы используете ctr-a для запуска последовательности команд. Затем нажмите esc, и курсор переместится в любом направлении. Нажмите ввод, чтобы начать выделение текста, перейти к конечной точке, снова нажмите ввод. Это скопирует в буфер.
Тогда ctr-a, а затем> вставит
Добавьте привязку к вашему vimrc:
Таким образом, вы также можете использовать xclip общий способ из терминала, например, чтобы скопировать весь файл в системный буфер обмена:
Если вы также можете создать псевдоним, например:
Есть ли консольный редактор для Linux, в котором просто выделять весь текст?
Просто выделить весь текст, как Ctrl-A в винде.
Просто сочетанием клавиш.
Чтобы вставить текст из буфера обмена и он бы заменил выделенный текст.
Простой 4 комментария
350k, а учитывая что у вопрошающего скорее всего медленная карточка microSD + медленный комп(Raspberry) то и выходит такое непотребство
tugo,
попробуйте dte который ниже описал в ответе, он так же быстр как nano но его при том можно легко настроить под себя
Заменить выделение ни в одном консольном редакторе содержимое буфера обмена не сможет, как это происходит в вашем локальном редакторе. Вам надо сначала удалить нужный фрагмент в файле, или его очистить, а потом вставить.
Ваш вопрос, скорее надо скорее задать так: В каком консольном редакторе можно простой комбинацией клавиш очистить редактируемый файл или выделение в нём.
Например, в каком-нибудь nano можно от текущей позиции всё удалить через Alt+T. Или заранее очистить файл, как предложил ky0 а потом открыть его в консольном редакторе и вставить туда нужное.
как вариант попробуйте тильду ( tilde ) (выделить все Ctrl+A)
п.с.
наткнулся на интересный консольный редактор dte
очень гибкий и весит меньше чем nano
$HOME/.dte/rc
для X-сов вместо wl-paste можно использовать к примеру тот же xsel с нужными ключами:
Горячие клавиши терминала Linux
В этой статье мы собрали самые полезные горячие клавиши терминала Linux, которые могут пригодится вам в работе. Здесь есть комбинации клавиш для навигации по истории команд, коррекции ошибок и управления окном терминала. Все клавиши расположены в случайном порядке.
Горячие клавиши терминала Linux
1. Tab
Без этого сочетания терминалом пользоваться невозможно, и поэтому его знают все. Одно нажатие клавиши Tab автоматически дополняет текущую команду или путь к файлу если возможен только один вариант. Два нажатия по ряд показывают возможные варианты автодополнения. Это делает набор команд и путей к файлам намного быстрее.
2. Ctrl + R
После нажатия Ctrl+R появляется строка поиска в которой вы можете начать вводить имя команды, которую надо выполнить. Система найдёт все команды, которые ранее выполнялись с таким началом и отобразит самую свежую. Вы можете уточнить поиск добавив ещё несколько символов. Для выполнения команды просто нажмите Enter, для редактирования Esc.
3. Ctrl + C
Это сочетание клавиш позволяет прервать работу любой программы, которая выполняется в терминале. После нажатия Ctr + C программе отправляется сигнал SIGINT и если она не обрабатывает его особым образом выполнение программы завершается. Некоторые программы перехватывают сигнал и перед завершением выполняют кое какие действия по сохранению данных и завершению операций, например пакетный менеджер zypper.
4. Ctrl + Z
5. Ctrl + D
Сочетание клавиш Ctrl+D можно считать альтернативой команды exit. Если вы подключены по SSH то сессия будет разорвана. Если вы работаете в терминале напрямую, то окно будет закрыто.
6. Ctrl + L
Альтернатива команды clear. Позволяет очистить вывод терминала. Очень удобно для создания снимков экрана и просто для очистки лишней информации.
7. Ctrl+P и Ctrl+N
Эти сочетания клавиш альтернативы клавишам стрелки вверх и вниз. Первое показывает предыдущую введенную команду, а второе следующую. Так вы можете перемещаться по истории команд. Это не удобнее стрелок, но иногда может быть полезно.
8. Ctrl + A и Ctrl + E
9. Ctrl + U и Ctrl + K
10. Ctrl + W
Нажав Ctrl+W вы можете стереть слово перед курсором. Если курсор находится в середине слова, то будут стёрты все символы от курсора до начала слова. Удобнее всего ставить курсор после слова, которое нужно убрать.
11. Ctrl + Y
С помощью Ctrl + Y вы можете вставить текст вырезанный с помощью Ctrl + U, Ctrl + K и Ctrl + W. Текст будет вставлен туда, где находится курсор.
12. Ctrl + B и Ctrl + F
Аналог для клавиш стрелка вправо и стрелка влево. Первое сочетание позволяет перемещаться на один символ вправо, а второе на один символ влево.
13. Ctrl + T
Заменяет символ, находящийся под курсором на предыдущий символ. Или перемещает символ перед курсором к концу строки.
14. Ctrl +X затем Ctrl + E
Открывает текущую команду в текстовом редакторе. Если в переменной EDITOR редактор не задан, то будет использоваться nano. После редактирования и сохранения результата команда будет выполнена. Удобно для написания многострочных скриптов.
15. Alt +.
16. Alt + B и Alt + F
Эти сочетания позволяют перемещаться по словам, также как их аналоги с Ctrl по символам. Alt + B перемещает курсор на слово влево, а Alt+F на слово вправо.
17. Alt + C, Alt + L и Alt + U
18. Ctrl + S и Ctrl + Q
Если команда выводит информацию слишком быстро, а вам надо прочитать её или скопировать, можно попросить терминал поставить на паузу вывод команды. Для этого нажмите Ctrl +S. Чтобы вернуть всё обратно нажмите Ctrl + Q.
Сочетания клавиш эмулятора терминала
Все сочетания клавиш, перечисленные выше будут работать во всех терминалах и эмуляторах терминала, которые используют командную оболочку Bash или другую популярную оболочку. Но у популярных эмуляторов терминала есть свои горячие клавиши, которые могут вам очень сильно пригодится при работе. Давайте рассмотрим их тоже. В этой статье будут использоваться горячие клавиши из Gnome Terminal, но в других терминалах они похожи.
1. Ctrl + Alt + T
С помощью этого сочетания клавиш можно открыть терминал в большинстве дистрибутивов, основанных на Ubuntu и Debian. Это просто, быстро и удобно.
2. Ctrl + Shift + С и Ctrl + Shift + V
3. Ctrl + Shift + F
Если вам надо выполнить поиск по выводу в терминале можно воспользоваться сочетанием Ctrl + Shift + F. После нажатия откроется окно ввода, в котором вы можете ввести искомое слово.
4. Shift + ЛКМ и Shift + ПКМ
Выводы
В этой статье мы собрали лучшие сочетания клавиш терминала Linux, которые могут пригодится вам в работе с системой или во время её настройки. А какие горячие клавиши нравятся вам? Какие вы используете? Напишите в комментариях!
Буфер обмена в Linux (копирование и вставка)
Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.
Буфер копирования
Стандартно для копирования и вставки объектов в Linux используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в обычный буфер копирования. Затем вы можете вставить этот текст в другом месте.
Буфер выбора (первичный буфер)
В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).
Кстати, именно этим объясняется следующие поведение. Вы выделили текст в программе, затем открыли другую программу и выделили какой-нибудь текст в ней. После этого, выделение текста в первой программе автоматически снимется, а текст который вы выделили последним, попадет в буфер выбора.
Копирование и вставка в терминале
В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.
Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.
Почему я не могу выделить текст в эмуляторе терминала Linux с помощью клавиш Shift + стрелка?
Это стандартные сочетания клавиш для редактирования текста, которые я постоянно использую при редактировании текста, буквально, в любом приложении linux, кроме эмуляторов терминала:
Я никогда не находил комбинацию эмулятора оболочки плюс терминала, которая позволяла бы последние два элемента в этом списке, и это сводило меня с ума. Очевидно, что эмуляторы терминала поддерживают выделение (мышь может это сделать), и они поддерживают использование клавиш ctrl и shift в качестве модификаторов (их можно использовать для перемещения курсора на целое слово и для прописных букв соответственно; [edit:] их даже можно использовать вместе для копирования / вставки с помощью shift-ctrl-C и shift-ctrl-V), так в чем же проблема, препятствующая этой функциональности? У меня есть несколько вопросов:
Я знаю, что текст можно копировать / вставлять с помощью мыши, это не то, о чем я спрашиваю. Я спрашиваю, почему я не могу сделать это с помощью клавиатуры в эмуляторе терминала.
Я думаю, было бы очень полезно, если бы я взял этот кусок за раз. Общая проблема: для кого предназначено нажатие клавиши? Терминал или программа, работающая внутри терминала?
gnome-terminal имеет несколько ключей, которые он захватывает для выполнения различных задач, включая некоторые из тех, о которых вы спрашиваете.
Теперь, принимая эту комбинацию клавиш одновременно:
стрелки влево + вправо для перемещения влево + вправо ctrl + стрелка для перемещения всего слова домой / конец для перемещения в начало / конец строки
Двигайся влево и вправо? Bash может быть настроен для этого, и обычно это по умолчанию. Как правило, они перемещают позицию курсора.
Ctrl + C / Ctrl + V для копирования / вставки
Первый: имеет ли смысл копировать / вставлять? Если вы находитесь в VT, у вас действительно нет буфера обмена, особенно если X не работает.
Shift + стрелка для выделения текста Shift + Ctrl + стрелка для выделения всего слова
Подсветка вашего терминала (если у него есть такая возможность) отделена от позиции курсора. Опять же, отсутствие доступных комбинаций клавиш, вероятно, является фактором. Имейте в виду, что выделение имеет две позиции: либо начало и конец, либо верхний левый и нижний правый углы. Как вы управляете обоими?
Наконец, обратите внимание, что во многих графических терминалах двойной щелчок по слову выделяет его. (И в X, скопируйте в основной выбор.)
screen Например, имеет ключи для переключения в режим перемещения по буферу (предыдущий вывод) и копирования / вставки.
Я думаю, что если вы сделаете адекватное использование xsel и первичный выбор, вы обнаружите, что операции с буфером обмена являются достаточно редкими и достаточно сложными, чтобы их можно было использовать с помощью мыши.
приложения, такие как bash (readline), работающие в эмуляторе терминала, ничего не знают о работающей системе X Window и X Window, в которой они находятся, они знают stdin и stdout на терминальном устройстве (ttyS / ttyUSB / tty / pts в linux).
Проблема не в том, чтобы показать какой-то выделенный текст, а в том, как сообщить приложению X Window (эмулятору терминала), что текст был выбран, через эти терминальные устройства.
Насколько мне известно, управляющие коды могут использоваться для управления специальным поведением, таким как очистка, заливка фона, перемещение курсора, и, возможно, может быть добавлен некоторый пользовательский управляющий код, чтобы сообщить X-терминалу, что текст из строки, столбца в строку, столбца был выбран, просто пример, может быть, вместо этого можно просто вернуть выбранный текст (подробности реализации).
Я думаю, что не являясь стандартным определением, вам придется исправлять каждое приложение, которое вы хотите поддержать, чтобы знать о нажатии комбинации клавиш и выводить соответствующий escape-код, readline, если вы хотите его в bash, эмулятор терминала X на с другой стороны, чтобы правильно обработать управляющий код (и, наконец, отправить информацию в буфер обмена). Вероятно, реализация этого в качестве терминальной возможности избавит вас от исправления каждого отдельного приложения. Я надеюсь (и предполагаю), что драйверы терминальных устройств в ядре хотят знать как можно меньше о escape-кодах, поэтому, если вам повезет, патч не потребуется.
Терминал X выводит выходные данные, поэтому при использовании мыши легко узнать, какой текст / символы вы выбираете.
Графический текстовый виджет знает все о своем X окне, поэтому его так легко реализовать, выбирая и копируя.