vi manual
목차
- sudo 저장
- vi hex editor
- vi 줄바꿈 된 라인 이동
- [^M 에러](#m-에러)
sudo 저장
sudo 명령이 가능한 유저의 경우
1
:w !sudo tee "%" > /dev/null
w!!
시 위 명령어가 실행되도록 함수 설정
1
ca w!! w !sudo tee "%" > /dev/null
sudo 명령이 불가능한 유저의 경우
/tmp/tfile
에 저장 후 루트 권한으로 파일 복사
1
:w !cat > /tmp/tfile
vi hex editor
1
:%!xxd
롤백하는 법
1
:%!xxd -r
vi 줄바꿈 된 라인 이동
set wrap
된 긴 줄을 이동할 때 줄바꿈 된 라인이 있을 경우
아래 예시를 기준으로 하면 asdfgh… 라인에서 j
키를 누르면 dfghas… 라인으로 이동하지 않고 zxcvbn 라인으로 이동한다.
이때 gj
또는 gk
키를 누르면 줄바꿈 된 라인으로 이동한다.
1
2
3
4
qwerty
asdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghas(줄바꿈)
dfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfghasdfgh
zxcvbn
^M 에러
주로 윈도우에서 작성된 파일을 리눅스에서 vi로 열었을 때 발생한다.
1
2
# ./test.sh
zsh: ./test.sh: bad interpreter: /bin/bash^M: no such file or directory
에러가 발생하여 vi로 파일을 열면 ^M
문자가 없다.
^M
문자는 vi -b <파일명>
명령을 통해 확인할 수 있다.
^M
문자는 Ctrl + V
키를 누른 뒤 M
키를 누르면 입력할 수 있다.
아래 명령어를 통해 ^M
문자를 모두 제거할 수 있다.
아래 명령어를 그대로 복사하면 텍스트 ^M
문자가 복사되므로 복사하지 말고 Ctrl + V
키를 누른 뒤 M
키를 눌러서 입력해야 한다.
1
%s/^M//g
이후 저장 & 종료 후 ./test.sh
명령을 실행하면 정상적으로 실행된다.
1
2
# ./test.sh
test
This post is licensed under CC BY 4.0 by the author.