Например, я хочу повторить:
"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
'
Как показать правильный формат?
Спасибо ~ [ 115]
Вы можете использовать здесь документы :
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'
Единственная проблема создана литеральными одинарными кавычками, содержавшимися в строке.
В таком случае:
'
\'
Например:
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'