Скопируйте текст из редактора nano в оболочку
Можно ли скопировать текст из файла, открытый с помощью nano
, в оболочку?
У меня есть текстовый файл, и я хочу скопировать несколько строк в консоль, но я не могу найти комбинацию клавиш для копирования текста.
Ответы
Ответ 1
Нано в оболочку:
1. Используя мышь, чтобы отметить текст.
2. Щелкните правой кнопкой мыши в командной консоли.
В Нано:
1. CTRL + 6 для Mark Set и отметьте, что вы хотите (end может оказать некоторую дополнительную помощь).
2. CTRL + k для вырезания того, что вы хотите скопировать
3. CTRL + u для вставки только что вырезанного, потому что вы просто хотите скопировать.
4. CTRL + u в том месте, куда вы хотите вставить.
или
1. CTRL + 6 для Mark Set и отметьте, что вы хотите (end может оказать некоторую дополнительную помощь).
2. ALT + 6 для копирования отмеченного текста.
3. CTRL + u в том месте, куда вы хотите вставить.
Ответ 2
Для тех, кто все еще ищет решение " копировать + вставить" в нано-редакторе
Выбрать текст
- ctrl + 6
- Используйте стрелку, чтобы переместить курсор туда, где вы хотите, чтобы метка заканчивалась
Примечание: если вы хотите скопировать всю строку, не нужно отмечать, просто переместите курсор на строку
Копировать:
Вставить:
Ссылка
Ответ 3
nano
, похоже, не имеет возможности копировать/вставлять из глобального/системного буфера обмена или оболочки.
Однако вы можете скопировать текст из одного файла в другой, используя nano
файловые буферы. Когда вы открываете другой файловый буфер с помощью ^R
(Ctrl + r), вы можете использовать встроенную функцию nano
копирования/вставки (обрисована в общих чертах ниже) для копирования между файлами:
M-6
(Meta + 6) для копирования строк в буфер обмена nano
.
^K
(Ctrl + k), чтобы вырезать текущую строку и сохранить ее в буфере обмена nano
.
^^
(Ctrl + Shift + 6) для выбора текста. Выбрав текст, вы можете использовать приведенные выше команды для его копирования или вырезания.
^U
(Ctrl + u), чтобы вставить текст из буфера обмена nano
.
Наконец, если вышеупомянутое решение не будет работать для вас, и вы используете эмулятор терминала, вы можете копировать/вставлять из глобального буфера обмена с помощью Ctrl + Shift + c и Ctrl + Shift + v (Cmd + c и Cmd + v в OSX) соответственно. screen
также предоставляет внешнюю копию/вставку, которая должна работать в nano
. Наконец, если вам нужно только захватить определенные строки или текст из файла, рассмотрите возможность использования grep
для поиска строк и xclip
или xsel
(или pbcopy
/pbpaste
в OSX), чтобы скопировать их в глобальный буфер обмена (и/или вставить из буфера обмена) вместо nano
.
Ответ 4
Нить довольно старая, но сегодня я смирился с тем же вопросом, и все вышеупомянутые решения не помогли. Поскольку я хотел скопировать длинные строки, мое решение - в соответствии с тем, что @themisterunknown написал выше - вне nano. Я использовал awk!
awk '{ if (NR==87) print $0 }' filename
где NR == [номер строки] и $ 0 - полная строка.
Ответ 5
Я не знаю, как это сделать прямо в nano. Однако вы можете использовать "cat" или "grep" для отображения строк вашего файла в консоли.
Если вы используете терминальный мультиплексор типа "экран", вы можете скопировать и вставить строки как это.
Ответ 6
Просто используйте Ctrl + Shift + 6, чтобы скопировать текущую строку, или вы можете установить метку, используя Ctrl + 6, и скопировать несколько строк, используя вышеупомянутую команду.
Ответ 7
Относительно простое решение:
-
От первого символа, который вы хотите скопировать, удерживайте Shift и идите до конца.
-
Нажмите Ctrl + K, чтобы вырезать текст из файла.
-
Нажмите Ctrl + X, а затем N, чтобы не сохранять никаких изменений.
-
Вставьте вырезанный текст в любое место.
Кроме того, если ваш текст помещается на экране, вы можете просто использовать мышь для выбора, и он автоматически копирует его в буфер обмена.
Ответ 8
То, что я написал ранее, может быть хорошим для копирования части одной строки, но не подходит для полных строк. Для одной или нескольких полных строк:
Установите fzy
(или fzf
или аналогичный) и поместите его в ~/.bashrc:
nc () {
fil=$(ps aux | grep [n]ano | grep -oE '[^ ]+$' | rev | cut -d'/' -f 1 | rev | uniq | fzy)
find ~ -type d -name .cache -prune -o -type f -name "$fil" -exec sed -n ""[email protected]"p" {} + | xsel -b && pkill -f 40x15
}
И поместите это в свой глобальный конфигурационный файл ярлыков или утилиту:
xterm -geometry 40x15
Теперь вы можете вызвать это маленькое окно xterm с помощью ярлыка и ввести
nc FIRST_LINE_NUMBER,LAST_LINE_NUMBER
и выберите файл для копирования этих строк. Вставьте их куда угодно, даже в другой nano (после отключения автоиндента M-I).
Для одной строки просто введите
nc LINE_NUMBER
Это может быть полезно только для копирования части длинной строки:
Вам нужна утилита fmt
и xsel
(или xclip
или wl-clipboard
или аналогичная) и поместите эту команду в файл или утилиту глобальных привязок клавиш:
xsel | fmt -c -w 1000 - | xsel
Тогда:
- Отключить нумерацию строк, если она включена M-N (Alt-N в моей конфигурации)
- Отключить поддержку мыши с помощью M-M (Alt-M в моем конфиге)
- Вы можете легко выделить всю область для копирования мышью, как в терминале или любой другой программе.
- Нажмите на свою пользовательскую привязку клавиш для указанной выше команды
- Нажмите среднюю кнопку мыши там, где вы хотите вставить текст
Это сохранит исходные/преднамеренные пустые строки, но все остальные строки будут объединены.
Это для первичного отбора. Если вы предпочитаете буфер обмена, замените xsel
на xsel -b
, и перед четвертым шагом вам нужно нажать Ctrl-Shift-C, а вместо 5-го вставить его с помощью Ctrl-V или Ctrl-Shift-V, в зависимости от того, где вы хотите вставить.
Ред.: Вместо первых трех шагов вы можете просто нажать Shift и щелкнуть в начале текста, который нужно скопировать, и отпустить Shift, но не отпускать мышь и перетаскивать мышь до конца текста, который нужно скопировать, и отпускать мышь. И следуйте вышеупомянутым шагам для буфера обмена, а не первичного выбора
Ответ 9
Еще одна потенциальная вещь, которую вы можете сделать, используя Google Cloud Platform, - это открытый редактор Cloudshell, который преобразует нанотекст в копируемое и вставляемое содержимое https://cloud.google.com/shell/docs/using-the-session-window.
Ответ 10
Доступ к буферу копирования невозможен за пределами nano, и нигде я не нашел ни одного файла буфера для чтения.
Вот полная альтернатива в полном NOX: печать заданной строки файла в истории bash.
Таким образом, данная строка доступна как команда с клавишей UP.
sed "LINE q;d" FILENAME >> ~/.bash_history
Пример:
sed "342q;d" doc.txt >> ~/.bash_history
Затем перезагрузите историю в текущем сеансе:
history -n
Или для автоматической перезагрузки истории при появлении новых запросов вставьте это в .bash_profile
:
PROMPT_COMMAND='history -n ; $PROMPT_COMMAND'
Примечание для клавиатур AZERTY и, вероятно, других раскладок, для которых требуется SHIFT для печати чисел с верхних клавиш.
Чтобы переключить выделение текста nano
(Mark Set/Unset
), ярлык:
CTRL + SHIFT + 2
Или
ALT + a
Затем вы можете выбрать текст с помощью клавиш со стрелками.
Все остальные ярлыки отлично работают как документация:
CTRL + k или F9, чтобы вырезать.
CTRL + u или F10 для вставки.
Ответ 11
1) Ctrl + 6
, чтобы отметить текст, который вы хотите скопировать
2) Ctrl + k
, чтобы вырезать текст и Ctrl + u
, чтобы вставить обратно в исходное место
3) Перейдите к нужной строке, где вы хотите вставить код, отмеченный на шаге (2). Ctrl + u
, чтобы вставить его.
Надеюсь, что это поможет.
Ответ 12
Намного проще метод:
$ cat my_file
Ctrl + Shift + c, чтобы скопировать требуемый вывод с терминала
Ctrl + Shift + v, чтобы вставить его куда угодно
Ответ 13
ctrl + shift + c, чтобы скопировать текст, вам выделено.
ctrl + shift + v для вставки текста