LINUX.ORG.RU

'ci*' (change in *between*) в словах, с делиметрами отличными от ' " ', ')', '}'. Например '|', '%', '$'

 


1

1

Как известно, чтобы изменять ('c') слова, окруженные кавычками или другими делиметрами, нужно, находясь на слове нажать 'ci*' - где * делиметр, например:

This is "bet▯ween" test
▯ - курсор. Нажимая ci" - входим в insert mode с удалением слова:
This is "▯" test
Это работает для многих, классических делиметров, например ' " ` ) } ]

Но не работает для '|', '%', '$' и т.д.

Как запилить?

★★☆
Ответ на: комментарий от kovrik

УМВР.

Как работает? Работает ci| в:

This is |bet▯ween| test
получаешь
This is |▯| test
?

И с %, $, *, # работает ? А на какой кнопке у тебя <leader> ? И как вводишь '|' например? S-\ надо полагать?

'paradigm/TextObjectify'

не использую, более того, не работает без плугинов вообще и с отключенным vimrc (vim --noplugins -u none)

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

Судя по всему, нельзя, потому что это не символы из множества какого-то, а полностью команды - ci", ci{, cit.

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

Да, с твоим .vimrc и всеми плугнами (я просто запустил твою настройку, вундл поставил все плагины) - работает.

Без плугинов, на чистом виме, без .vimrc вообще - не работает. Следовательно, у тебя какой-то фикс есть, буду копаться, спасибо.

science ★★☆
() автор топика
Ответ на: комментарий от kovrik

Понятно. Действительно такое поведение не из коробки, возможность использовать для ci делиметры: |, $, %, # и прочие не дефолтные (в том числе любые парные, будь-то буквы или цифры), предоставляет плугин delimitMate.
Поскольку он мне не нужен, посмотрю как он там реализовал внутри и просто пропишу себе в vimrc.

// Кстати, vim-surround тоже не умеет заменять по cs* такие делиметры.

science ★★☆
() автор топика
Последнее исправление: science (всего исправлений: 3)
Ответ на: комментарий от kovrik

Ой жесть)

Работает из-за TextObjectify, как ты правильно в первом ответе отметил, я просто тебя не правильно понял.

Спасибо. delimitMate здесь не причем.

science ★★☆
() автор топика
Ответ на: комментарий от kovrik

а почему плагины ставить не хочешь?

у меня стоят плагины: http://bpaste.net/show/106521/

Просто я пришел к тому, что автозакрытие кавычек (delimitMate, другие возможные варианты) мне только мешает.

science ★★☆
() автор топика

пилить не надо,
можно делать так:
c]*
перевод:
change till next first occurance of '*'
к сожалению, в этом методе, сначала прийдётся перейти на первую '*'... да хоть поиском обратно

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

c]*

у меня не работает на:

 this is %between% test
 this is |between| test
 this is &between& test
Курсор ставил: перед %, на %, и после первого %

У тебя работает? Да и в целом тут сразу видно, что это более дорогое решение, дольше и неудобнее, чем конкретно указывать что делать, пусть даже через плугин (считай недоработка Мельника)

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

хммм, думал что работает, странно, сорри

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