Поддерживает ли Vimscript многострочные строки?
Команды python и ruby позволяют использовать формат: :python << EOF
Можете ли вы сделать что-либо подобное со строками?
Поддерживает ли Vimscript многострочные строки?
Команды python и ruby позволяют использовать формат: :python << EOF
Можете ли вы сделать что-либо подобное со строками?
Vimscript позволяет продолжить предыдущую строку, начиная с обратной косой черты, но это не так удобно, как строка heredoc, например, в Ruby, PHP или Bash.
let g:myLongString='A string
\ that has a lot of lines
\ each beginning with a
\ backslash to continue the previous one
\ and whitespace before the backslash
\ is ignored'
Посмотрите соответствующую документацию по продолжению строки.
Перечисление назначений и включение предыдущих позволяет объединить строки
let foo = "bar"
let foo = foo . 123
echom foo "prints: bar123
Используйте оператор объединения составных строк, точка равна:
let foo = "bar"
let foo .= 123
echom foo "prints: bar123
Составьте список своих строк и чисел и присоединитесь к ним:
let foo = ["I'm", 'bat', 'man', 11 ][0:4]
echo join(foo) "prints: I'm bat man 11
То же, что и выше, но объединение с нарезкой массива
let foo = ["I'm", 'bat', 'man', [ "i'm", "a", "mario" ] ]
echo join(foo[0:2]) . " " . join(foo[3])
"prints: I'm bat man i'm a mario
Обратная косая черта в начале строки допускает продолжение строки
let foo = "I don't think mazer
\ intends for us to find
\ a diplomatic solution"
echom foo
let foo = 'Keep falling,
\ let the "grav hammer" and environment
\ do the work'
echom foo
Печать:
I don't think mazer intends for us to find a diplomatic solution
Keep falling, let the "grav hammer" and environment do the work
Скройте свой секретный текст и самые древние тома внутри функции:
function! myblockcomment()
(*& So we back in the club
// Get that bodies rocking
!#@ from side to side, side side to side.
[email protected]#$ = %^&&*()+
endfunction
Место в памяти текста произвольной формы - это файл, в котором он находится на диске. Функция никогда не запускается, иначе интерпретатор будет рвать, так что пока она не будет использована, вы будете использовать vim отражение, чтобы получить реализацию myblockcomment()
, а затем делать все, что захотите. Не делайте этого, кроме как ослеплять и путать.
Вы не можете использовать <<
для создания строки, но вы можете использовать <<
для создания списка строк.
см. :help :let=<<
ниже приведен пример из VIM DOC
let text =<< trim END
if ok
echo 'done'
endif
END