moreutils 패키지의 vidir을 사용하려고 하는데 다음과 같은 문제가 있습니다. 파일을 로드할 때 다음과 같이 vidir로 이름을 바꾸고 싶습니다.
$ vidir
또는 다음과 같습니다:
$ find -type f | vidir --verbose -
vidir은 다음과 같이 숫자, 탭 및 파일의 전체 경로를 표시합니다.
1 ./file1
2 ./file2
3 ./file3
또는 현재 폴더가 아닌 경우 다음과 같습니다.
1 ./folder/subfolder1/file1
2 ./folder/subfolder1/file2
3 ./folder/subfolder1/file3
이제는 번호를 바꾸거나 폴더 이름을 편집하여 파일 이름을 바꿀 수 있는 등 몇 가지 장점이 있지만 동일한 폴더에 있는 파일의 이름을 바꾸고 일부를 삭제하고 싶을 뿐입니다. 내 문제는 정규식을 사용하여 파일 이름을 바꾸면 숫자, 슬래시, 점, 탭 등 모든 항목이 영향을 받을 수 있다는 것입니다. 처음에 삭제해서 수정하고 다시 만들어보려고 했는데, 파일을 저장하고 에디터를 닫으면 vidir이 불평을 합니다.
그렇다면 이 문제를 피하는 방법은 무엇입니까? 내가 뭐 놓친 거 없니?
편집: 수정을 시작하기 전에 vidir 접두사를 제거하고 완료되면 다시 추가하려고 시도했는데 작동하는 것 같습니다. Vim에서 사용하는 기능은 다음과 같습니다.
" Remove vidir prefix
function! VidirRemovePrefix()
:%s/\d*\t.\//
endfunction
" Delete line
function! VidirDeleteLine()
:s/^\d*\t.*//
endfunction
" Add vidir prefix back
function! VidirAddPrefix()
:%s /^/\t.\//
execute "normal! ggVG"
:let i=1 | '<,'>g/^/ s//\=i . ""/ | let i+=1
endfunction
어떤 이유로 마지막 기능이 항상 작동하지는 않습니다. 이런 경우에는 명령줄에서 수동으로 마지막 줄(숫자 삽입)을 수행합니다.