LINUX.ORG.RU

Emacs + Evil странно работает вставка текста

 


0

3

Пытаюсь сделать простое действие, копирую текст, перемещаюсь к нужному фрагменту текста и помечаю его для замены, затем заменяю текст тем, что скопировал ранее, пока все отлично, но в буфере обмена уже содержится другое значение, а именно, то что было заменено!

Поясню на примере:

есть текст:

 1111
 2222
 3333
  1. Перехожу к началу первой строки (gg)
  2. Выделяю первую строку и копирую ее (viwy)
  3. Перемещаюсь к второй строке (j)
  4. Выделяю слово 2222 (viw)
  5. Заменяю 2222 тем, что было скопировано - 1111 (p)
  6. Перехожу на строчку ниже (j)
  7. Пытаюсь проделать то же, что в п.4-5

Но в место этого строка 3333 заменяется на 2222, те то что было заменено при копировании.

В результате получается:

1111
1111
2222

Но я добиваюсь:

1111
1111
1111

Получается мне все время надо копировать замененный текст, что бы вставить его в новое место, что очень не удобно.

Использую Emacs + Evill & delete-selection-mode



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

evil-kill-on-visual-paste is a variable defined in ‘evil-vars.el’. Its value is t

Documentation: Whether ‘evil-visual-paste’ adds the replaced text to the kill ring, making it the default for the next paste. The default, t, replicates the default vim behavior.

BOSS-NIGGER
()

в буфере обмена

Открой для себя kill-ring.

PS: вообще не понимаю чуваков, которые пользуются vi эмуляцией в emacs по собственной воле. Мазохизм как он есть.

no-such-file ★★★★★
()
Ответ на: комментарий от BOSS-NIGGER

Ну так предыдущее содержимое никуда не девается. Вангую, что специально так сделано, чтобы заменённый текст автоматом запоминался. Впрочем, как я уже сказал, мне непонятно зачем вообще устраивать себе такие приключения. Хочешь vi, бери vi не мучай жопу.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Да, это стандартное поведение и в vim’e (про vi не знаю).

А если хочешь емакс, а бинды емакса не нравятся, все равно на ви переходить?

BOSS-NIGGER
()
Ответ на: комментарий от BOSS-NIGGER

если хочешь емакс, а бинды емакса не нравятся

А зачем тогда ты его хочешь? Emacs и так достаточно сложный, чтобы закопаться в нём и без всяких evil.

no-such-file ★★★★★
()
Ответ на: комментарий от BOSS-NIGGER

Спасибо, проверил работает!)

Но все же не понятно как с этим вимеры живут, может есть более правильный подход? И еще попутно, поделитесь опытом, как вы так быстро нашли решение, куда смотреть/нажимать? Если конечно не трудно)

lintiay
() автор топика
Ответ на: комментарий от no-such-file

А зачем тогда ты его хочешь?

Байтишь меня на холивар?

Его не сложно настраивать. Уж явно приятнее чем через .vimrc.

BOSS-NIGGER
()
Ответ на: комментарий от BOSS-NIGGER
Можешь еще листать вставленное по M-Shift-y

Как раз искал это, знал что есть но не мог с ходу разобраться куда копать.

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

Через M-x helm-apropos нашел evil-visual-paste (evil ясно, потом раз вставляешь значит paste, раз в выделении, значит visual). И там вся инфа.

BOSS-NIGGER
()
Ответ на: комментарий от no-such-file

После некоторого времени пальцы устают совершать эти аккорды.

про килринг знаю, на сколько его можно понять, просто показалось что так будет проще меня понять

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

Но все же не понятно как с этим вимеры живут

" now it is possible to paste many times over selected text
xnoremap <expr> p 'pgv"'.v:register.'y`>'
xnoremap <expr> P 'Pgv"'.v:register.'y`>'

Так и живем.

habamax ★★★
()
Ответ на: комментарий от lintiay

Но все же не понятно как с этим вимеры живут, может есть более правильный подход?

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

Если тебя так прет это emacs+evil, то лучше сразу spacemacs ставь. Там разные кривые ситуации с evil уже исправлены (но не эта).

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

Если тебя так прет это emacs+evil, то лучше сразу spacemacs ставь. Там разные кривые ситуации с evil уже исправлены (но не эта).

Пробовал и spacemacs и doom …, для моих целей они тупят сильно, много лишнего, конфиги получаются сложными и т.д.

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

они тупят сильно, много лишнего, конфиги получаются сложными

Ну хз. Это в принципе Emacs так делает. Это по сути однопоточный lisp интерпретатор, поэтому скорость это не про Emacs. Doom, имхо очень быстр и прост, Spacemacs, конечно заметно больше, но там не обязательно включать много слоев.

zloelamo ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.