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, вероятно, будет работать в большинстве редакторов, но это немного глупо и требует чтения файла дважды.


Или, если 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чтобы открыть файл до последней строки!


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 работает нормально.


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

2

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

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

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


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

2

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


В некоторых системах Alt (или Meta) переключается клавишей Esc: - \
Mausy5043
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.