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 в соответствии с ожидаемым поведением (т.е. в режиме модальностей), то это, наверное, правильно, но не является темой топика.

★

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

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)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.