Автор Тема: Редактирование текста в консоли  (Прочитано 6461 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Редактирование текста в консоли
« : Суббота, 17 Января, 2015, 18:07:51 »
Хотелось бы узнать, кто и чем в консоли редактирует текст?
Интересует копирование - вставка целых текстов и их частей друг в друга, произволное выделение части текста для его копирования или удаления.
Я пользуюсь в основном nano, иногда, в openwrt использую vi. Не в первом не во втором случае не могу делать то, о чём писал выше. Если использовать консоль в иксах, то в nano вполне можно мышкой выделить и копировать, например, а вот без иксов никак. Если не знаю чего, прошу подсказать.
Спасибо.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Редактирование текста в консоли
« Ответ #1 : Воскресенье, 18 Января, 2015, 04:40:56 »
Если операции производятся внутри одного документа, то проблем никаких нет - почти все редакторы имеют в своём составе хоткеи для выделения (даже без gpm), копировании и вставки.
Вот комбинации из nano:
^K      (F9)            Вырезать текущую строку и сохранить её в буфере обмена
^U      (F10)           Вставить содержимое буфера обмена в текущую строку
^C      (F11)           Показать положение курсора
^T      (F12)           Проверить орфографию, если доступно

M-\     (M-|)           На первую строку файла
M-/     (M-?)           На последнюю строку файла

^_      (F13)   (M-G)   Перейти на указанный номер строки и ряд
^\      (F14)   (M-R)   Заменить текст или регулярное выражение
^^      (F15)   (M-A)   Отметить текст в текущей позиции курсора
M-W     (F16)           Повторить последний поиск

M-^     (M-6)           Копировать текущую строку и сохранить ее в буфере обмена
M-}                     Увеличить отступ строки


Чтобы не выделять фрагмент строки, здесь в буфер можно поместить только строку целиком.

Другое дело, когда нужно часть текста взять из другого документа. Если нет мышки и возможности установить такие программы как gpm, xclip, то я обычно добавляю нужный текст через echo в сам документ, а уже потом открываю получившийся документ и вставленный кусок текста перемещаю редактором куда нужно.
Пример:
$ ls              # имеется два файла, нужно некоторые строки из text2.txt перенести в text.txt
text.txt
text2.txt

$ cat text2.txt >> text.txt      # просто дописываем весь текст text2.txt к text.txt (в конец)

$ vi text.txt

А вообще, vi - это многооконный редактор, так что можно открыть оба документа и через выделение\копирование\вставку  совершить необходимые действия. На счёт nano - не в курсе, может ли он несколько документов одновременно открывать.

В mc, во встроенном редакторе,  для блочных операций определены клавиши:
F3  - начать\завершить выделение (в иксах - SHIFT + курсорный клавиши),
F5  - копия выделенного участка в позицию курсора


Если есть возможность установить gpm - это демон поддержки мыши в консоли, то будет работать произвольное выделение, и, в зависимости от поддержки редактора, можно оперировать отдельными кусками текста.
Сочетания для терминала:
Ctrl+U - вырезать в буфер все команды текущей строки
Ctrl+Y - вставить.

В man bash много комбинаций описано.

Примерно так.
« Последнее редактирование: Воскресенье, 18 Января, 2015, 04:58:58 от vovka »
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Редактирование текста в консоли
« Ответ #2 : Понедельник, 19 Января, 2015, 09:43:43 »
Пробовал через putty соединялся и вижу, что F9-F12 нормально работают, а как пользоваться комбинацией ^K, M-\     (M-|) и тд . При нажатии кнопки м она букву пишет в тексте. Я не понимаю как надо правильно этот хэлп из мана применить :(

По поводу cat, я тоже так делал. Когда текст не очень большой - пол беды.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: Редактирование текста в консоли
« Ответ #3 : Вторник, 20 Января, 2015, 16:00:02 »
 :o
Пробовал через putty соединялся и вижу, что F9-F12 нормально работают, а как пользоваться комбинацией ^K, M-\     (M-|) и тд . При нажатии кнопки м она букву пишет в тексте. Я не понимаю как надо правильно этот хэлп из мана применить :(
^ или C - если стоит первым, - это клавиша Ctrl
M - также если стоит первым в комбинации - это META или по современному ALT

^K - это Ctrl + K
но
^^ - это Ctrl + ^ 

M-\ - это META + \  или ALT + \

В Midnight Commander есть трёхэтажные комбинации. Например:
[attach=1]

Пункт меню "Быстрый просмотр" можно выбрать так:
Сначала нажать комбинацию Ctrl + x , затем отпустить, а затем нажать кратковременно q
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: Редактирование текста в консоли
« Ответ #4 : Понедельник, 02 Февраля, 2015, 05:53:14 »
Огромное спасибо, теперь я это знаю :)