Как сделать замену независимой от 'gdefault'? - PullRequest
2 голосов
/ 28 ноября 2011

Я пишу небольшой скрипт Vim. В зависимости от параметра gdefault подстановка либо должна содержать / g , либо нет.

Как сделать замену независимой, независимо от настроек пользователя?

Кроме тестирования gdefault, есть ли лучший способ?

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Я не уверен, что именно вы спрашиваете, но типичный способ сделать что-то вроде этого - сохранить настройку параметра use'rs, изменить параметр на то, что вы хотите, выполнить команду, а затем восстановить настройку пользователя. Например.,

let user_gdefault = &gdefault
set nogdefault
s/something/something else/g
let &gdefault = user_gdefault

Если вы хотите сделать это еще лучше, используйте структуру try / finally:

let user_gdefault = &gdefault
try
    set nogdefault
    s/something/something else/g
finally    
    let &gdefault = user_gdefault
endtry
0 голосов
/ 05 февраля 2015

Другой способ сделать подстановку независимой от gdefault - использовать вместо нее функцию substitute ().

Например:

call setline('.', substitute(getline('.'), 'something', 'somethingelse', 'g'))

Функция substitute () не зависит от gdefault.Сопоставление с образцом в этой функции всегда ведет себя так, как будто установлена ​​магическая опция, а cpoptions пуст.Тем не менее, он по-прежнему подчиняется игнорированию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...