예를 들어;
if [ 'readline is vi-command' ]; then
echo 'normal mode'
else
echo 'insert mode'
fi
저는 이 작업을 수행하는 방법을 정말로 모르고 매뉴얼 페이지에서 아무것도 찾을 수 없는 것 같습니다. 아니면 가능합니까?
답변1
vi-append-eol
(기본값 A) 명령 모드에서만 바인딩합니다. 따라서 현재 바인딩되어 있는지 여부를 쿼리하여 현재 모드를 확인할 수 있습니다.
if LC_ALL=C bind -q vi-append-eol | grep -q 'not bound'; then
echo 'insert mode'
else
echo 'normal mode'
fi
LC_ALL=C
다른 로케일에서는 "unbound"가 다른 언어로 작성되기 때문에 사용됩니다.
물론, 특별한 것은 없으며 vi-append-eol
, 모드 중 하나에만 바인딩되는 다른 작업이 많이 있으므로 그 중 하나를 사용할 수 있습니다.