LINUX.ORG.RU

Как сделать из Neovim блокнот

 , , ,


0

1

Решил на досуге попробовать Neovim. Но именно с идеей минимальных ограничений по модальности. Т.е. копирование и вставку текста хотется делать однообразно для всех модальностей. Фактически ключевой вопрос в следующем:

Как сделать ЛЕВУЮ часть курсора основной?

Сейчас поясню что это значит на примерах:

  1. Есть текст (здесь и далее # - курсор в режиме команд, который закрывает собой стоящий справа от него символ, | - курсор в режиме вставки):
behave# mswin -> i -> behave| mswin -> C-c -> behav#e mswin

Я ожидаю, что он вернется к позиции behave# mswin. Это можно настроить?

  1. Выделяю для копирования слово слева
behave mswi#n -> C-S-left -> behave |mswin

но выделить последнюю букву я не могу, т.к. она стоит в конце строки, а в командном режиме переместиться в крайнюю правую позицию невозможно, таким образом будет выделено слово mswi вместо mswin. Т.е. единственный вариант переключаться сначала в режим вставки, но можно ли настроить редактор, чтобы перемещение в конец строки было возможно в командном режиме?

  1. Собственно вставка в командном режиме
behave# mswin -> C-v -> behave msw#imswin

Я тут хотел бы, чтобы текст вставлялся относительно левого края курсора, т.е. в идеале, чтобы результат выглядел так: behavemswi# mswin.

P.S. Что до использования Neovim в соответствии с ожидаемым поведением (т.е. в режиме модальностей), то это, наверное, правильно, но не является темой топика.

1. Использовать a вместо i

2. Ну это благодаря mswin. Смотрите :help 'virtualedit'

3. Не совсем распарсил. Может вам P нужно?

bread ()
Последнее исправление: bread (всего исправлений: 1)

сложно написано, ЯННП.
Могу посоветовать залезть в доки или в Nvim или на сайте - paste раздел. Там всё-всё описано.

Oldboy ()
Последнее исправление: Oldboy (всего исправлений: 1)
Ответ на: комментарий от bread
  1. Использовать a вместо i

Спасибо, почти. Теперь все симметрично, но относительно правого края курсора, а я хочу, чтобы было относительно левого.

  1. Ну это благодаря mswin. Смотрите :help ‘virtualedit’

Спасибо, set virtualedit=onemore - то, что нужно. Дело дописать соответствующие функции и повесить на хоткеи.

  1. Не совсем распарсил. Может вам P нужно?

Или P, да, но результат одинаковый: он вставит справа относительно курсора (в командном режиме), а я хочу слева (как в Emacs).

Kostafey ()
Последнее исправление: Kostafey (всего исправлений: 1)
Ответ на: комментарий от Oldboy

Я пока просто пытаюсь понять в принципе стоит ли их изучение потраченного времени. Есть подозрение, что некоторые вещи сделать как я хочу невозможно. Вот это и пытаюсь выяснить в первую очередь.

Kostafey ()
Ответ на: комментарий от Kostafey

Можно делать всякое, просто глянь на API. Потом пойди и посмотри roadmap и зачем вообще его придумали. Это тебе не emacs с lua. Это Neo, но всё же Vim.

Я ещё раз перечитал начало твоих хотелок и понял, что ты не умеешь работать с Vim. Рекомендую посмотреть видосы tip&tricks, так сказать. Если обычная работа (а копирование, вставк и так далее) не подходит, то рекомендую менять редактор. Бери Emacs и переизобретай велосипед. Ну или Vscode, если знаний хватит.

И чем тебя привлекает NVIM? Treesitter - есть в Emacs, модальность - есть.

Oldboy ()
Последнее исправление: Oldboy (всего исправлений: 1)
Ответ на: комментарий от Oldboy

Я ещё раз перечитал начало твоих хотелок и понял, что ты не умеешь работать с Vim.

Я не неумею. Я не хочу. Но ведь Vim - это конструктор. Что хочешь - то и можно сделать? Или нет?

Бери Emacs и переизобретай велосипед.

12 лет на нем отработал (см. Жизнь после Emacs)

Ну или Vscode, если знаний хватит.

Уже второй год на нем. Просто любопытства ради решил Neovim посмотреть.

Kostafey ()
Последнее исправление: Kostafey (всего исправлений: 2)
Ответ на: комментарий от bread

Вообще, в нормальном режиме курсор концептуально не между символами стоит, а над символом. К этому нужно привыкнуть, иначе получается всё против шерсти. Если хочется блокнот, то лучше всё делать в режиме вставки замапив нужные команды через C-o. Хотя зачем тогда вим.

bread ()
Ответ на: комментарий от Kostafey

Я не неумею. Я не хочу. Но ведь Vim - это конструктор.

Нет. Как раз тут ты ошибаешься. Конструктором и не пахнет. Всё прибито гвоздями. Единственное, что можно сделать - это переназначить/назначить последовательности нажатий и с большим трудом прикрутить костыль или показать/скрыть что-то на экран. После девятого говорят, что с меньшим, ну посмотрим.

И поэтому просто надо привыкать. И привыкать к настройкам по умолчанию. Тогда мир Vim и раскрывается.

Oldboy ()
Последнее исправление: Oldboy (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.