Я нашел нужную мне настройку в ~ / .vim / after / ftplugin / gitcommit.vim
:
setlocal textwidth = 0
sh -c 'TMP=??; echo $TMP;'
При использовании двойных кавычек расширение параметра происходит при построении командной строки, т.е. оболочка не видит
TMP=??; echo $TMP;
в качестве его параметра, но
TMP=??; echo ;
, если $TMP
пусто в вызывающей оболочке.
sh -c 'TMP=??; echo "$TMP"'
С двойными кавычками вокруг кода sh -c
, $TMP
расширяется интерактивной оболочкой перед выполнением кода sh -c
. С одинарными кавычками $TMP
будет развернут внутри оболочки sh
. (Я также правильно процитировал расширение переменной $TMP
дляecho
).
Одинарные кавычки защищают строку от раскрытия переменных.
Если вы не хотите, чтобы ??
рассматривался как шаблон подстановки имени файла внутри скрипта sh -c
, используйте
sh -c 'TMP="??"; echo "$TMP"'