Используя обратные косые черты в сокращениях энергии

Я также получаю катастрофические отказы проводника в Vista (я не нахожусь в версии на 64 бита хотя). Я использую Vista Супер Saijen (или независимо от того, что они называют самую дорогую версию). У меня нет ошибок с Черепахой.

Мой проводник действительно, однако, отказывает о через день (иногда многократно в день, если он имеет "от" дня). Я не положителен, что это вызывается TortoiseSVN все же. Из того, что я слышу, проводник просто отказывает много в Vista...

Вы попытались удалить Черепаху и использовать Windows в течение дня или два и видеть, отказывает ли это все еще? Вы перезапускаете свой компьютер, по крайней мере, один раз в день (Это кажется, чем дольше я иду между перезапусками, тем хуже катастрофические отказы становятся)?

9
задан Peter 5 November 2009 в 00:17
поделиться

4 ответа

Вы можете определить свое сокращение на «бит», а затем проверить, предшествует ли ему «\», если да, вернуть новый текст или «бит» в противном случае.

function! s:Expr(default, repl)
  if getline('.')[col('.')-2]=='\'
    return "\<bs>".a:repl
  else
    return a:default
  endif
endfunction

:inoreab bit <c-r>=<sid>Expr('bit', 'foobar')<cr>

Это трюки, которые я использовал в MapNoContext () .

РЕДАКТИРОВАТЬ: см. : h аббревиатуры , чтобы узнать, почему то, что вы просили, не может быть достигнуто напрямую.

EDIT2 : Его можно легко инкапсулировать следующим образом:

function! s:DefIab(nore, ...)
  let opt = ''
  let i = 0
  while i != len(a:000)
    let arg = a:000[i]
    if arg !~? '<buffer>\|<silent>'
      break
    endif
    let opt .= ' '.arg
    let i += 1
  endwhile

  if i+2 != len(a:000)
    throw "Invalid number of arguments"
  endif
  let lhs = a:000[i]
  let rhs = a:000[i+1]

  exe 'i'.a:nore.'ab'.opt.' '.lhs.' <c-r>=<sid>Expr('.string(lhs).', '.string(rhs).')<cr>'
endfunction

command! -nargs=+ InoreabBSlash call s:DefIab('nore', <f-args>)

И использовать с простым:

InoreabBSlash <buffer> locbit foobar

или

InoreabBSlash bit foobar
10
ответ дан 4 December 2019 в 15:21
поделиться

вы могли бы

   inoremap \bit replacementtext

Также, если вам не нравится задержка, используйте альтернативный лидер, например обратную кавычку `(для меня над вкладкой)

   :iab `f foobar

, если вы не часто используете их в своем коде

1
ответ дан 4 December 2019 в 15:21
поделиться

Я предлагаю использовать обратную косую черту с обеих сторон, vim доволен этим:

inoreabbr \bit\ replacement_text

Обратите внимание, что я использую "nore" версию abbr, лучше прояснить, если вы не собираетесь рекурсивное расширение. Я использую следующие сокращения в течение долгого времени, и они отлично работают:

inoreabbr \time\ <C-R>=strftime("%d-%b-%Y @ %H:%M")<CR>
inoreabbr \date\ <C-R>=strftime("%d-%b-%Y")<CR>
2
ответ дан 4 December 2019 в 15:21
поделиться

Вы можете использовать обратную косую черту в качестве префикса для аббревиатуры только в том случае, если за ней стоит только один символ, поэтому : iab \ b replacetext будет работать.

0
ответ дан 4 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: