VIM: как перейти на точную линию на Ubuntu

78

Я использую vi в Ubuntu 12.10. Некоторые файлы довольно длинные, поэтому, когда я хочу перейти в середину файла, мне приходится листать вниз или прокручивать вниз.

Есть ли ярлык VIM, чтобы перейти к точному номеру строки?

Теги:
terminal
vim

6 ответов

131
Лучший ответ
:150

приведет вас к строке 150 в vi

:1500

приведет вас к строке 1500 в vi

В соответствии с комментариями вы можете попробовать

1 5 0 G

чтобы перейти к строке 150. что меньше : 1 5 0 Enter если вы не уверены, какую строку вы используете, попробуйте

 :set nu!

Обратите внимание:

если вы хотите всегда видеть, что линия рассматривает редактирование вашего профиля vim. Чаще всего

vi ~/.vimrc

и добавьте

:set nu! 

и напишите и закройте

:wq
#or you could use :x

это можно сделать за пределами vi. Например, если я хочу удалить строку 5000 в текстовом файле, я мог бы использовать язык сценариев. Например, с помощью sed это будет следующий

sed -i '5000d;' inputFile.txt

для удаления строки с 10 по 20 это будет

sed -i '10,20d;' inputFile.txt

Обратите внимание: -i будет редактировать файл на месте. Без -i это будет достигнуто. Попробуй. вы можете перенаправить stdout в файл

sed '5001,$d;' inputFile.txt >> appenedFile.txt

у вас может быть много чего для вас. это удаляет строку 5001 в $. С $будет конец файла. → будет добавлен в файл. где as > создает новый файл.

если вам интересно, сколько строк находится в файле, вы можете ввести wc -l inputFile.txt

некоторые из них могут показаться ужасно тривиальными, но если вы пытаетесь отредактировать файл с 50 000 строк, может потребоваться минута vi, чтобы открыть и пройти. где, если вы знаете, что хотите просто удалить последнюю строку, вы можете использовать sed и сделать это за долю времени.

sed также может искать и заменять внутри файла. Но возможно, awk, perl или python также могут быть жизнеспособным решением.

но в целом вы можете найти хороший учебник по vi. существуют тысячи. Я бы посоветовал Google. Возможно, найди себе VIM Cheatsheat.

  • 0
    Нет проблем, я немного расширил свой ответ, но. Удачи
  • 2
    также, в vim вы можете набрать: n50% и перейти к середине файла.
Показать ещё 4 комментария
12

Другие подсказки vim: в командном режиме

  • H отображается в верхней части экрана.
  • M переходит в середину экрана.
  • L идет в нижней части экрана.
  • g g переходит в первую строку
  • g переходит в последнюю строку
6

возьмите несколько минут и начните читать этот документ. Он вознаграждает вас в долгосрочной перспективе за эффективность редактирования особенно конфигурационного файла.

  • 0
    >> Спасибо за документ !!!
  • 0
    @ Кевин без проблем.
Показать ещё 2 комментария
4

От открытого терминала в оболочке bash просто:

$ less +N yourfile

Где N - номер строки, для просмотра или

$ vi +N yourfile

для редактирования. Знак + означает команду для запуска при запуске. Вы также можете использовать /regex для поиска первого появления в раскрытии yourfile

$ less -i +/error logfile
$ vi +/open.*myfile myprog...
2

Другой совет: поскольку вы новичок в vim, запуск vimtutor может быть очень полезным.

  • 3
    Разве это не должен быть просто комментарий, поскольку он не затрагивает конкретный вопрос?
0

Добавление к другим ответам -

line_number G перемещает вас к line_number.
G перемещает вас к последней строке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню