Вы можете проверить, что any
из strings
в each
начинается с того, что в words
, например,
>>> each
'abctotech present'
>>> word
'abc present'
>>> all(any(y.startswith(x) for y in each.split()) for x in word.split())
True
>>> each1
'toabctotech present'
>>> all(any(y.startswith(x) for y in each1.split()) for x in word.split())
False
Я быстро решил эту проблему. Это не работает как есть. Не стесняйтесь вносить изменения и публиковать их на вики-сайте vim или в виде плагина, если вы его доработаете.
есть вероятность, что вы захотите создать ag: resharp_list для каждого языка (например, один для языков с парантезами и т. Д.)
Все, что нужно, это маркер для исходной позиции курсора: Маркеры и автокоманда тайм-аута, которая сбрасывает индекс.
"resharp emulator
"TODO this needs a marker
"also c-w is bad mapping as it has a lag with all the other-
"window mappings
"
let g:resharp_index = 0
let g:resharp_select = ['iw', 'is', 'ip', 'ggVG']
func! ResharpSelect()
if g:resharp_index >= len (g:resharp_select)
let g:resharp_index = 0
endif
exe "norm \<esc>v" . g:resharp_select[g:resharp_index]
let g:resharp_index = g:resharp_index + 1
endfun
nnoremap <c-w> :call ResharpSelect()<cr>
vnoremap <c-w> :call ResharpSelect()<cr>
"Something to reset on timeout. TODO this doesn't work
au CursorHold :let g:resharp_index = 0<cr>
Ответ - да. В визуальном режиме вы можете использовать все обычные методы навигации, а также некоторые дополнительные.
Некоторые из моих любимых? Сначала нажмите v в обычном режиме, чтобы перейти в визуальный режим, затем нажмите:
Я уверен, что другие здесь тоже могут добавить в этот список. Да, и не забывайте, что в режиме Visual Block Cv опробуйте его в vim с помощью приведенных выше команд, он работает в двух измерениях: -)
Если вы говорите о Vim (и вы должны быть :-), вы можете начать помечать текст с помощью v
, то у вас есть все стандартные команды перемещения курсора (и, как вы знаете, их много ), которые расширяют выбор, а также перемещают курсор.
Затем вы просто делаете с выбранным текстом все, что хотите.
См. здесь для подробностей.
Нужно написать функцию, которая будет сохранять текущий выбор, а затем пробовать все более широкие выборки, пока не появится новый выбор. превышает сохраненный или выделяет весь текст. Возможны следующие варианты: