например, я хочу эхо:
"let vim know the last edit position
au BufReadPost * if line("'\"") > 0|if line("'\"")
\ <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
Я попытался, но не смог:
echo '
"let vim know the last edit position
au BufReadPost * if line("\'\"") > 0|if line("\'\"")
\ <= line("$")|exe("norm \'\"")|else|exe "norm $"|endif|endif
'
Как показать правильный формат?
Thank вы ~
Вы можете использовать здесь документы:
cat <<-EOF
au BufReadPost * if line("'\"") > 0|if line("'\"")
\ <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
EOF
Если вы хотите использовать echo, все, что вам нужно сделать, это использовать одинарные кавычки
'string containing many strange characters $ " \ and so'
Единственная проблема возникает из буквенных одинарных кавычек, содержащихся в строке. В этом случае:
закроет строку перед литеральной ' записью и экранированной одинарной цитатой \' снова открыть строку, чтобы продолжить следующие символыНапример: [!d7 ]
aaa'bbb ==> 'aaa' + \' + 'bbb' ==> 'aaa'\''bbb'
Очевидно, что если буквальная одинарная кавычка находится в начале или конце строки, нельзя использовать одну из закрывающих или открывающих цитат:
'aaa'bbb ==> \' + 'aaa' + \' + 'bbb' ==> \''aaa'\''bbb'
Ваша конкретная строка может выводится командой
echo '"let vim know the last edit position
au BufReadPost * if line("'\''\"") > 0|if line("'\''\"")
\ <= line("$")|exe("norm '\''\"")|else|exe "norm $"|endif|endif'