Вызов `: ls` во второй раз в Vim требует предварительной очистки команд

#vim

#vim

Вопрос:

Если я открою несколько файлов следующим образом

 vi *.js
  

и переключитесь, например, на буфер 9 через :ls , затем введите : , уже есть команда, например .,. 8 , так должен вести себя vim?

Комментарии:

1. Можете ли вы точно сказать, какие у вас нажатия клавиш? Для меня это звучит странно.

2. Я набираю :ls , и он показывает все активные буферы, затем я ввожу номер буфера, в который я хочу перейти (это правильный способ перемещения между буферами?) затем я набираю :

3. Спасибо. Да, я не думаю, что это правильный путь.

Ответ №1:

Похоже, что вы нажимаете 9, чтобы попытаться выбрать буфер на :ls дисплее. :ls не позволяет выбрать буфер. Это просто список текущих перечисленных буферов в Vim. Однако 9: запускает режим командной строки с диапазоном, который указывает «9 строк, начиная с текущей строки».

Существует несколько способов переключения в буфер с указанным номером. Например, для переключения в буфер 9 вы можете

  • В обычном режиме нажмите 9Ctrl ^ (в зависимости от раскладки клавиатуры, вы можете использовать Ctrl 6 вместо Ctrl ^)
  • В режиме командной :9b строки изменится на буфер 9.

Вы также можете указать уникальную подстроку имени файла буфера для :b команды, чтобы переключиться на буфер, соответствующий этой подстроке. Так что, если у вас есть foo.c и bar.c открыто, :b f переключитесь на foo.c .

Комментарии:

1. vim настолько потрясающий, я не могу поверить, что все это время использовал gedit. Я могу использовать регулярные выражения :b foo*fight*rs_*concert*.txt

2. 1 к вопросу и ответу за непреднамеренное знакомство с {count}:

Ответ №2:

Для переключения буфера вам необходимо :b 9 .

Комментарии:

1. Я тоже только что понял это. Я делал :bn 9

2. :bn 9 подходит для перехода в буфер 10 из буфера один (то есть на 9 буферов впереди)