VIFM에서 가장 최근에 편집된 파일로 이동하는 이동을 어떻게 정의합니까?

VIFM에서 가장 최근에 편집된 파일로 이동하는 이동을 어떻게 정의합니까?

디렉토리의 다른 곳에 있을 때 가장 최근에 편집한 파일로 직접 이동하는 VIFM 작업을 찾을 수 없습니다. 그런 모션이 있나요? 그렇지 않다면 정의할 수 있습니까?

시간 수정 창 정렬을 사용한 다음 gg를 사용하여 맨 위로 이동해 보았습니다. 그러나 이렇게 정렬하면 디렉토리가 창 상단에 배치되므로 gg가 나를 그 곳으로 데려갑니다. 가깝지만, 평소에 해보고 싶었던 일이기 때문에 그것을 이루기 위한 수고를 최소화하고 싶습니다. 감사해요!

답변1

이것선적 서류 비치fnameescape가장 최근에 수정된 파일로 커서를 이동하는 예제 명령이 포함되어 있지만 파일은 디렉터리일 수도 있습니다.

따라서 요청한 작업을 정확하게 수행하려면 아래 코드 조각을 에 넣고 ~/.config/vifm/vifmrcVifm을 다시 시작하세요. 이제 * 를,f 사용하여 디렉터리가 아닌 최신 파일로 이동할 수 있습니다 .

"Cursor to most recently modified file
noremap ,r :exe 'goto' fnameescape(system('ls -At   | head -n 1'))<CR>

"Cursor to least recently modified file
noremap ,o :exe 'goto' fnameescape(system('ls -Art  | head -n 1'))<CR>

"Cursor to most recently modified non-directory file
noremap ,f :exe 'goto' fnameescape(system('ls -Atp  | grep -vm1 /'))<CR>

"Cursor to least recently modified non-directory file
noremap ,l :exe 'goto' fnameescape(system('ls -Atrp | grep -vm1 /'))<CR>

보시다시피 귀하의 편의를 위해 다른 관련 매핑도 제공했습니다.

*파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다.

어떻게 작동하나요?

goto커서를 특정 파일로 이동하는 Vifm 함수입니다.

필수 파일은 나열된 첫 번째 비디렉토리 파일입니다 ls -Atp. 즉, 슬래시가 포함되지 않은 첫 번째 줄입니다. grep -v /슬래시가 포함된 행을 필터링하고 이 -m1옵션은 첫 번째 일치 항목만 반환하도록 지시합니다.

BSD 및 GNU/Linux 시스템에서 사용할 수 있지만 -mPOSIX에서는 이를 필요로 하지 않으므로 Grep에 누락된 경우 대신 grep -v / | head -n 1또는를 사용하세요 sed '\:/:d;q'.

관련 정보