Size: a a a

2020 June 13

NG

Nicholas Guriev in pro.vim
а что там в справке?
источник

v

vehlwn in pro.vim
Nicholas Guriev
а что там в справке?
В пересланном сообщении.
источник

v

vehlwn in pro.vim
Для вим.инита и для режима команд через двоеточие разные правила экранирования?
источник

v

vehlwn in pro.vim
Nicholas Guriev
кажется, обратные слэши надо было экранировать
Вот так сработало. Как теперь экранировать пробелы?
let &shell='cmd.exe /k "C:\\Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat"'
источник

GK

Georgy Komarov in pro.vim
vehlwn
Почему в справке их не экранируют?
Вероятно ошибка в хелпе, см. :he shell-unquoting:

...
 3. Inside quotes backslash preceding backslash means one backslash.  
    Backslash preceding quote means one quote. Backslash preceding
    anything else means backslash and next character literally:
    '"a\\b"' is the same as "a\b", '"a\\"b"' runs shell named literally
    'a"b', '"a\b"' is the same as "a\b" again.
источник

SB

Sergey Batalev in pro.vim
vehlwn
Переслано от vehlwn
let &shell='"C:\Windows\system32\cmd.exe"'
А у вас есть доступ на запуск из той аудитории без прав администратора? Из system32
источник

v

vehlwn in pro.vim
Sergey Batalev
А у вас есть доступ на запуск из той аудитории без прав администратора? Из system32
Да.
источник

v

vehlwn in pro.vim
:echo &shell выводит это.
set shell=cmd.exe\ /k\ \"C:\\Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\"
Какие-то пробелы все равно не эканированы.
источник

v

vehlwn in pro.vim
источник

NG

Nicholas Guriev in pro.vim
vehlwn
:echo &shell выводит это.
set shell=cmd.exe\ /k\ \"C:\\Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\"
Какие-то пробелы все равно не эканированы.
Ух! Сколько слэшей. Возможно, было бы чуть попроще через let& настройку задавать.
источник

v

vehlwn in pro.vim
Georgy Komarov
Вероятно ошибка в хелпе, см. :he shell-unquoting:

...
 3. Inside quotes backslash preceding backslash means one backslash.  
    Backslash preceding quote means one quote. Backslash preceding
    anything else means backslash and next character literally:
    '"a\\b"' is the same as "a\b", '"a\\"b"' runs shell named literally
    'a"b', '"a\b"' is the same as "a\b" again.
Это к чему правила? К set или let&?
источник

D

Dmitry in pro.vim
Привет всем! Как бы мне замапить на <leader>tf?
:TranslateW target_lang=fr <какой-то текст выделенный в визуальном режиме>
источник

YS

Yaroslav Schekin in pro.vim
Dmitry
Привет всем! Как бы мне замапить на <leader>tf?
:TranslateW target_lang=fr <какой-то текст выделенный в визуальном режиме>
Просто так — никак. Нужна какая-то функция, получающая visual selection.
источник

v

vehlwn in pro.vim
vehlwn
Это к чему правила? К set или let&?
Предлагаю запретить пути с пробелами и вендовыми палками. Я создал в папке без пробелов батник, который вызывает мсвцшный батник с пробелами, и все заработало.
let &shell='cmd.exe /k call C:/Users/vehlwn/vim-shell.bat'
источник

SB

Sergey Batalev in pro.vim
vehlwn
Предлагаю запретить пути с пробелами и вендовыми палками. Я создал в папке без пробелов батник, который вызывает мсвцшный батник с пробелами, и все заработало.
let &shell='cmd.exe /k call C:/Users/vehlwn/vim-shell.bat'
Тогда предлагаю запретить виндовс сразу)
источник

NG

Nicholas Guriev in pro.vim
и правильное решение будет))
источник

SB

Sergey Batalev in pro.vim
Yaroslav Schekin
Просто так — никак. Нужна какая-то функция, получающая visual selection.
Стало интересно, надо посмотреть, в вим го что то подобное внутри плагина было
источник

YS

Yaroslav Schekin in pro.vim
Sergey Batalev
Стало интересно, надо посмотреть, в вим го что то подобное внутри плагина было
Вот, к примеру ("выдрано" из одного из самописных plug-ins):
" Taken from http://stackoverflow.com/a/6271254 and "fixed"
function! s:GetVisualSelection() abort
   " Why is this not a built-in Vim script function?!
   let [line_start, column_start] = getpos("'<")[1:2]
   let [line_end, column_end] = getpos("'>")[1:2]
   if column_end == 1
      let line_end -= 1
      let column_end = col([line_end, '$'])
   endif
   let lines = getline(line_start, line_end)
   if len(lines) == 0
       return ''
   endif
   let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)]
   let lines[0] = lines[0][column_start - 1:]
   return join(lines, "\n")
endfunction
источник

SB

Sergey Batalev in pro.vim
Yaroslav Schekin
Вот, к примеру ("выдрано" из одного из самописных plug-ins):
" Taken from http://stackoverflow.com/a/6271254 and "fixed"
function! s:GetVisualSelection() abort
   " Why is this not a built-in Vim script function?!
   let [line_start, column_start] = getpos("'<")[1:2]
   let [line_end, column_end] = getpos("'>")[1:2]
   if column_end == 1
      let line_end -= 1
      let column_end = col([line_end, '$'])
   endif
   let lines = getline(line_start, line_end)
   if len(lines) == 0
       return ''
   endif
   let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)]
   let lines[0] = lines[0][column_start - 1:]
   return join(lines, "\n")
endfunction
почитаю, спасибо
источник

JC

Julian =) Coffee in pro.vim
vehlwn
Предлагаю запретить пути с пробелами и вендовыми палками. Я создал в папке без пробелов батник, который вызывает мсвцшный батник с пробелами, и все заработало.
let &shell='cmd.exe /k call C:/Users/vehlwn/vim-shell.bat'
винда умеет работать с линуксовыми палками, вроде
источник