Nano - перейти к концу файла

37

У меня есть несколько длинных файлов журнала. Я могу просмотреть последние строки tail -n 50 file.txt, но иногда мне нужно отредактировать эти последние строки.

Как мне перейти прямо к концу файла при просмотре nano?

Марко Пачак
источник
4
Попробуйте vim:-P
Hunter.S. Thompson
5
@ Hunter.S.Thompson Это было предназначено для не хардкорных пользователей (смеется)
Марко Пачак
@ Hunter.S.Thompson Это не работает! Вы используете пользовательскую команду! Но теперь попробуйте vimпо-портативному G
Volker Siegel
1
@ VolkerSiegel Я не могу сказать, сарказм ли вы, но это не пользовательская команда. Это смайлик. Мы использовали эти вещи до того, как кто-то позволил Unicode курить травку.
NieDzejkob
Саркастично, конечно! Я попробовал вашу команду: :открыть командную строку, чем -, Pи войти. Вот что я получил: «E464: неоднозначное использование пользовательских команд». Всего наилучшего!
Фолькер Сигел

Ответы:

52

Откройте файл с помощью nano file.txt.

Теперь введите Ctrl+, _а затем Ctrl+V

Марко Пачак
источник
24
Вы также можете сделать Ctrl + W, Ctrl + V - в зависимости от того, что удобнее для ваших рук :)
psmears
@psmears, который зависит от версии. v2.4 имеет ваши ярлыки. Текущая версия v4.0 имеет ярлыки, которые упоминает Марко. Очень надоедливый.
Mausy5043
@ Mausy5043: версии не ниже 2.4 имеют оба набора ярлыков. Версия 4.0, кажется, убрала Ctrl + W, Ctrl + V, что раздражает; у него действительно есть Ctrl + W, Ctrl + T, Ctrl + Y, который по крайней мере только на буквенных клавишах, но длиннее :-(
psmears
Эти ярлыки не очень хорошо работают в Windows / Putty
Эрик Грандж
22

Многие редакторы поддерживают опцию в командной строке, чтобы перейти непосредственно к строке NNN . К счастью для вас, кажется, что вы переходите в конец, если номер строки указан за концом файла, так что вы можете использовать что-то вроде:+NNNnano

nano +999999 file

Это также работает в joe, но не в, например, lessили VIM, они жалуются на то, что они идут мимо EOF. (по крайней мере те, что в моей системе. less +G fileи vi +$ fileработают в тех.)

Конечно, что-то подобное $EDITOR +$(wc -l file) file, вероятно, будет работать в большинстве редакторов, но это немного глупо и требует чтения файла дважды.

ilkkachu
источник
Или, если nano уже открыт, используйте <kbd> Alt / <kbd> + <kbd> G </ kbd> и введите 99999
Эрик Грандж
11

Из встроенной Nano help ( ^G):

M-\   (^Home)   Go to the first line of the file
M-/   (^End)    Go to the last line of the file

Итак, нажмите Alt+, \чтобы перейти к первой строке, или нажмите Alt+, /чтобы перейти к последней строке .

  • Это будет эквивалентно gg(начало) или G(конец) в vim .
  • Это также утверждает, что Ctrl+ Homeили Ctrl+ Endдолжен работать, ноэто никогда не работало для меня кажется, что они работают изначально на консоли / десктопе, но не через SSH с использованием PuTTY.
  • Насколько я помню, это то, что /у нижней части клавиатуры и \у верхней части.

Если вы хотите команду , вы можете написать функцию в вашем .bashrcили .bash_aliasesиспользовать счетчик строк из wc:

function nano-end {
    # if the file exists, jump to the end
    # otherwise, just open an empty nano
    [ -f "$1" ] && nano +$(wc -l "$1") || nano
}

Теперь просто введите, nano-end filenameчтобы открыть файл до последней строки!

ghaberek
источник
3

Ctrl+ Endработает, если у вас есть последняя (скомпилированная) версия nanoредактора.

Если вы не знаете, как это сделать, вы можете прочитать редактор Compiling Nano с опциями

Обратите внимание, что в более новых системах, например, на основе Ubuntu 18.04, такая версия уже существует.

Из журнала изменений :

2017 12 апреля - GNU nano 2.8.1

... заставляет ^ Home и ^ End переходить в начало и конец файла (на терминалах, которые поддерживают эти нажатия клавиш) ...

Замазка против Cygwin

У меня не установлен PuTTY, здесь мы должны полагаться на другие утверждения, что эти комбинации клавиш не работают в Windows 10 + PuTTY + SSH + nano> 2.8.1.

С другой стороны, у меня есть Cygwin, и Windows 10 + Cygwin + SSH + nano> 2.8.1 работает нормально.

LinuxSecurityFreak
источник
@ghaberek См. мое последнее редактирование для получения подробной информации об альтернативном подходе с Cygwin, который доказал свою эффективность.
LinuxSecurityFreak
2

ОП хочет, чтобы я добавил ответ для перехода к последней строке vim.

ESC+ ShiftGприведет вас к началу последней строки.

ESC+ ShiftGAприведет вас к концу последней строки, и режим вставки будет активирован.

Hunter.S.Thompson
источник
Если вы хотите сделать это в режиме вставки, сделайте C-o G. Не то, чтобы вы хотели сделать это, если бы вы использовали vim right ...
NieDzejkob
2

Чтобы перейти непосредственно к концу файла в nano, просто наберите: Alt+/

Махмуд Мостафа
источник
В некоторых системах Alt (или Meta) переключается клавишей Esc: - \
Mausy5043