이 ex
명령은 $
다음으로 이동합니다.첫 번째마지막 줄의 문자입니다. 따라서 역방향 검색을 수행하면 현재 행을 건너뜁니다. ex
정규식을 사용 하여 마지막 문자로 이동 하거나 마지막 문자를 검색하려면 어떻게 해야 합니까?
예:
$ cd -- "$(mktemp --directory)"
$ printf '%s\n' foo bar foo bar > test.txt
$ ex -c '$' -c '?bar' -c 'visual' test.txt
이 시점에서 커서는 예상대로 4행이 아닌 2행에 있습니다. ex -c '?bar' -c 'visual' test.txt
래핑할 때 마지막 행을 찾고 싶어도 을 사용하면 동일한 결과가 생성됩니다( vim
그렇습니다).
빔 7.3을 사용합니다.
답변1
ex
에서처럼 보인다마지막line - ex -c '1' -c '?bar' -c 'visual' test.txt
커서를 마지막 줄로 이동합니다.
답변2
내 버전에서는 뒤로 검색을 시작하는 것 같습니다 ex
.$+1?...
뒤쪽에마지막 줄:
sh$ ex -version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:49:33)
sh$ ex -c '$+1?bar' -c visual test.txt
답변3
또 다른 해결책:
ex -c '?bar' -c '/bar' -c 'visual' test.txt
bar
기본적으로 '?bar'는 파일의 마지막 줄부터 시작하는 문자열을 검색하지만 마지막 줄 내에서는 검색하지 않습니다. 따라서 bar
마지막 행의 첫 번째 행을 클릭하면 /bar
올바르게 만들어 bar
마지막 행으로 돌아갑니다.
마지막 줄에 문자열이 포함되어 있지 않으면 실패합니다 bar
.