У меня есть несколько длинных файлов журнала. Я могу просмотреть последние строки tail -n 50 file.txt, но иногда мне нужно отредактировать эти последние строки.
Как мне перейти прямо к концу файла при просмотре nano?
@ Hunter.S.Thompson Это было предназначено для не хардкорных пользователей (смеется)
Марко Пачак
@ Hunter.S.Thompson Это не работает! Вы используете пользовательскую команду! Но теперь попробуйте vimпо-портативному G
Volker Siegel
1
@ VolkerSiegel Я не могу сказать, сарказм ли вы, но это не пользовательская команда. Это смайлик. Мы использовали эти вещи до того, как кто-то позволил Unicode курить травку.
NieDzejkob
Саркастично, конечно! Я попробовал вашу команду: :открыть командную строку, чем -, Pи войти. Вот что я получил: «E464: неоднозначное использование пользовательских команд». Всего наилучшего!
Вы также можете сделать 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чтобы открыть файл до последней строки!
... заставляет ^ Home и ^ End переходить в начало и конец файла (на терминалах, которые поддерживают эти нажатия клавиш) ...
Замазка против Cygwin
У меня не установлен PuTTY, здесь мы должны полагаться на другие утверждения, что эти комбинации клавиш не работают в Windows 10 + PuTTY + SSH + nano> 2.8.1.
С другой стороны, у меня есть Cygwin, и Windows 10 + Cygwin + SSH + nano> 2.8.1 работает нормально.
vim
:-Pvim
по-портативному G:
открыть командную строку, чем-
,P
и войти. Вот что я получил: «E464: неоднозначное использование пользовательских команд». Всего наилучшего!Ответы:
Откройте файл с помощью
nano file.txt
.Теперь введите Ctrl+, _а затем Ctrl+V
источник
Многие редакторы поддерживают опцию в командной строке, чтобы перейти непосредственно к строке NNN . К счастью для вас, кажется, что вы переходите в конец, если номер строки указан за концом файла, так что вы можете использовать что-то вроде:
+NNN
nano
Это также работает в
joe
, но не в, например,less
или VIM, они жалуются на то, что они идут мимо EOF. (по крайней мере те, что в моей системе.less +G file
иvi +$ file
работают в тех.)Конечно, что-то подобное
$EDITOR +$(wc -l file) file
, вероятно, будет работать в большинстве редакторов, но это немного глупо и требует чтения файла дважды.источник
Из встроенной Nano help (
^G
):Итак, нажмите Alt+, \чтобы перейти к первой строке, или нажмите Alt+, /чтобы перейти к последней строке .
это никогда не работало для менякажется, что они работают изначально на консоли / десктопе, но не через SSH с использованием PuTTY./
у нижней части клавиатуры и\
у верхней части.Если вы хотите команду , вы можете написать функцию в вашем
.bashrc
или.bash_aliases
использовать счетчик строк изwc
:Теперь просто введите,
nano-end filename
чтобы открыть файл до последней строки!источник
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 работает нормально.
источник
ОП хочет, чтобы я добавил ответ для перехода к последней строке
vim
.ESC+ ShiftGприведет вас к началу последней строки.
ESC+ ShiftGAприведет вас к концу последней строки, и режим вставки будет активирован.
источник
C-o G
. Не то, чтобы вы хотели сделать это, если бы вы использовали vim right ...Чтобы перейти непосредственно к концу файла в nano, просто наберите: Alt+/
источник