2013-03-19 2 views
1

PEP8 использует _ в качестве разделителя слов, например, метод с именем get_context_data.Word delimitors для стиля кодирования питона?

caw так здорово, когда вы хотите изменить get_context_data до set_context_data.

Я googled и добавил set iskeyword-=_ к моему vimrc.

Но другая проблема возникает с этим изменением, я могу автозаполнение имени методы, когда я тип get_, меню показывает мне context не context_data Я хочу, есть ли способ решить эту проблему?

+0

происходит ли это только в файлах py? – Kent

+0

@Kent не только для python, я использую 'set iskeyword - = _' глобально и использую supertab и autocomplpop для завершения кода. – iMom0

+0

О, я просто неправильно понял ваш вопрос .. теперь я понимаю, почему вы удалили '_' из iskeyword. вы хотите, чтобы было легко изменить часть между '_'s .... – Kent

ответ

3

Изменяя настройку 'iskeyword', вы оказываете влияние (и потенциально ломаете) много вещей; среди них слово движений (w, e и т. д.), доработки (ваша проблема здесь) и подсветка синтаксиса.

Я рекомендую сохранить исходную настройку (в конце концов, get_context_data как отдельная переменная, вероятно, также должна быть представлена ​​одним словом). Вы можете использовать мой camelcasemotion plugin для работы с фрагментами, разделенными подчеркиванием. С плагином вы можете либо переопределить исходные движения и текстовые объекты, либо использовать ca,w вместо caw.

+0

+1 для этого плагина – Kent

1

Лучше не изменяйте опцию ключа. В этом есть много команд. Если вы просто хотите, чтобы сделать редактирование подчеркиванием, связанную строку (a_b_c_d) проще, вы могли бы попробовать это отображение:

onoremap iu :<c-u>normal! T_vt_<cr> 
onoremap au :<c-u>normal! F_vf_<cr> 

с этим отображением, (ЕД средства в Underscore, вы можете изменить его). Вы могли бы, например

get_cont[I]ext_data ([I]:cursor) 

вы набираете ciu вы получили get_[I]_data, diu будет делать удаление au будет делать операцию также на обернутом подчеркивании.

Но для этих случаев, указанное отображение делает не работу (или работы неожиданно^_ *)

g[I]et_context_data -> [I]_context_data (you could do bct_ instead) 
get_context_dat[I]a -> get_context_[I] (you could do ecT_ or T_cw instead) 

Поскольку отображение не работает wordwise .Вы может сделать ваш костюм однако.

Смежные вопросы