WSL 덕분에 Ubuntu 's Bash를 사용하는 Windows 사용자 입니다. 이제 일부 파일을 편집해야하며 Vi가 정말 싫습니다. 그냥 처리해야합니까, 아니면 더 간단한 대안이 있습니까?
내가 찾고있는 기능은 다음과 같습니다.
- CLI 기반
- 사용하기 쉬움 (입력 및 편집은 메모장과 유사해야 함)
- 간단한 편집 기능으로 충분
Vim을 마스터하려고하지만 지금 바로 편집해야합니다!
WSL 덕분에 Ubuntu 's Bash를 사용하는 Windows 사용자 입니다. 이제 일부 파일을 편집해야하며 Vi가 정말 싫습니다. 그냥 처리해야합니까, 아니면 더 간단한 대안이 있습니까?
내가 찾고있는 기능은 다음과 같습니다.
Vim을 마스터하려고하지만 지금 바로 편집해야합니다!
답변:
대체 편집기를 찾고 있다면 혼자가 아닙니다. 기본적으로 인생은 배우기 에는 너무 짧 습니다. vi
저는 이것이 생활을위한 소프트웨어 개발자라고 말합니다. 그러나 당신은 해야 그에게 문제가 있기 때문에 그것을 종료하는 방법 20K 프로그래머 중 한 아웃 . 또한 완고한 서버에서는 다른 편집기를 찾지 못하기 때문에 기본적인 추가 / 삽입 작업을 수행하는 것이 좋습니다.
이제 귀하의 질문에 대한 답은 아마입니다 nano
.
자동 빌드 스크립트를 git
실행 중이거나 다른 명령을 사용 하거나 실행중인 경우 vim
원하는 명령 없이 열 수 있습니다. 계속하기 전에 다음을 실행하여이를 방지 할 수 있습니다.
export EDITOR=nano
EDITOR
팁을 위한 추가 포인트
그것은 의견의 문제입니다.
초보자는 나노를 사용 합니다.
vim ( "vi 개선")에는 약간의 학습 곡선이 있지만 매우 강력합니다. vim 또는 다른 vim 안내서 또는 vim 튜토리얼 vimtutor
(vim에 포함 된)에 대해서는 이 초보자 안내서를 참조하십시오 .
지금은 나노를 강력히 추천합니다
nano -B /path/to/file/to/edit
-B는 백업을 만듭니다
명령은 제어 키와 함께 발행되며 편집기 창의 맨 아래에 나열됩니다.
구문 강조에 대한 안내서가 있습니다 : nano에서 구문 강조를 활성화하려면 어떻게합니까?
emacs
모두 대체입니다 vim
및 nano
뿐만 아니라 많은 장점이 있습니다. emacs
나노보다 더 복잡합니다. 이맥스 투어를 볼 수 있습니다 .
완벽 함을 위해 Zenburn과 같은 vim + 테마가 도움이 될 수 있습니다.
vi/vim
. :) 모든 nix 장치에 있습니다. :) 기본은 그렇게 어렵지 않습니다.
텍스트 편집기가 원하는 작업을 수행하지 않았다는 것에 실망한 적이 있습니까? 당신이 기억할 수없는 분노 ...
- ... 도움을 찾는 방법?
- ... 무엇을 의미합니까?
- ... 학부생으로서 읽은 작은 소문이 있습니까?
작고 용감한 세상이 기다리고 있습니다!
우리가 가장 좋아하는 가벼운 텍스트 편집기를 옹호하면서 eXcellent, 작고 빠른 xo
(exofrills)을 추천하겠습니다 .
단일 Python 3 파일이며 Pygments를 통한 구문 강조를 잘 지원합니다 (비 Python 이외의 경우는 아니지만).
또한 매우 간단하고 유용한 키 조합이있어 마음의 내용을 쉽고 쉽게 변경할 수 있습니다.
다른 특징들:
- 단일 파일에서 850 줄 미만의 코드!
- 구문 강조!
- 정규식 일치 및 교체!
- 검색 기록 캐싱!
- WTFPL 라이센스!
- 완전 맞춤형!
- 원래 위치가 아닌 곳에서 시작하십시오!
- 줄에있는 단어들 사이를 뛰어 넘어라!
- 파일의 아무 곳으로나 이동하십시오!
- 전체 파일 삽입!
- 초보자에게 친숙합니다. 어쩌면 당신은 새로운 단어입니다!
- 텍스트를 복사하여 붙여 넣기!
- 라인 및 열 상태!
- 비 텍스트 편집 공간의 한 행만!
- 저장 및 로딩 모두!
Python3 소스는 github 에 있으며 다음을 사용하여 더 쉽게 설치할 수 있습니다.
sudo apt install python3-pip
sudo pip3 install exofrills
exofrills : 텍스트가 편집되었지만 여전히 배가 고파요.
면책 조항 : 나는 결코 exofrills 프로젝트와 제휴하지 않습니다.
처음에 vi로 어려움을 겪었다는 것을 부인할 수는 없지만 vi가 실제로 배우기 매우 간단하다는 주장을 할 수 있다고 생각합니다. (유닉스를 사용하기 시작했을 때 선택은 vi 또는 emacs였습니다. 그래서 ed를 선택할 당시, 매우 간단한 라인 편집기였습니다. 초기 Unix 교재를 읽음으로써 이미 배웠습니다. vi는 매일 사용하지만 아마 vi를 사용합니다. 기능의 아주 작은 부분 집합 만 사용하십시오.
vi를 사용하는 것에 대한 첫 번째 주장은 다음과 같습니다. vi는 모든 시스템에 존재하며 리소스를 거의 사용하지 않으며 불안정하고 느린 연결에서 사용할 수 있습니다. 다른 편집기에서는 실패하거나 느리고 사용할 수 없습니다. 또는 시스템이 손상된 상황에서 화살표 키가 올바르게 해석되지 않는 경우 (예 : 잘못된 terminfo 설정) vi는 문제의 영향을받지 않고 구성 파일을 수정하여 문제를 일으키는 구성 파일을 수정할 수 있습니다.
vi의 유용한 부분 집합을 배우는 방법은 다음과 같습니다. 첫째 : vi를 대화식 터미널 GUI "편집기"로 생각하지 말고 텍스트 파일을 조작하기위한 프로그래밍 언어로보십시오. 처음에 "vi"는 VIsual 모드를 나타내었고, vi는 시각적이지 않은 상대방 ex를 가지고 있으며, 이는 시작하기에 좋은 장소입니다. 쉘 프롬프트에서 ex를 입력하십시오 (나는 ¬를 사용하여 리턴을 나타냄).
$ ex¬
Entering Ex mode. Type "visual" to go to Normal mode.
:
이제 Enter를 누르십시오.
:¬
E749: empty buffer
:
자, 무언가를 넣습니다. "a¬"를 입력하고 텍스트 줄을 입력 한 다음 한 줄에 마침표를 입력하십시오.
:a¬
Hello World¬
.¬
:
그것은 append 명령이었습니다. 쉽고 짧고 니모닉입니다. 그러나 버퍼에 무엇이 있는지 보는 것이 좋을 것입니다.
:%p¬
Hello World
:
그것은 분명히 인쇄 명령 p였습니다. %는 줄 범위 속기입니다. 각 명령 앞에 명령을 적용해야하는 줄 번호 또는 범위가 올 수 있습니다. %는 "모든 줄"을 의미합니다. $는 마지막 줄을 의미하고 마침표는 현재 줄을 의미합니다. 숫자는 특정 행을 의미합니다. 범위는 n, m이고 숫자는 더하거나 뺄 수 있으므로. + 1, $-1은 다음 행에서 두 번째 마지막 행까지의 평균입니다. 행 번호만으로 구성된 명령은 해당 행으로 이동합니다. 내가 사용하는 명령의 나머지 작은 하위 집합은 다음과 같습니다.
:1i¬
this text is inserted before line 1.¬
.¬
:
:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:
w는 모든 (또는 선택된 범위의) 행을 파일에 씁니다.
:1d¬
1 행을 삭제합니다.
:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!
s는 정규식을 대체합니다. 정규식을 아는 것이 좋습니다!
:q¬
E37: No write since last change (add ! to override)
q가 종료됩니다. wq 쓰기 및 종료 큐! 글을 쓰지 않고 비슷한 맥락에서 종료합니다! 가능하면 파일에 쓰기를 강제합니다.
이제 멋진 것 :
:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!
! 명령이 행을 쉘 명령으로 필터링합니다.
그리고 마지막으로:
:vi¬
VISUAL 모드로 들어갑니다. 속지 마십시오. 편집기처럼 보이지만 여전히 대화식 프로그래밍 셸입니다. 항상 버퍼와 몇 가지 명령을 살펴보십시오. 비주얼 모드에서 a :는 ex 모드의 : 프롬프트를 표시합니다. 화살표 키 (작동하는 경우)가 움직이고 그렇지 않으면 hjkl이 작동합니다! h 왼쪽, j 아래, k 위쪽 및 l 오른쪽 0은 첫 번째 문자로 이동하고 ^ (여기서 정규 표현식을 생각하십시오!)는 줄의 첫 번째 공백이 아닌 문자로 이동합니다. $ (정규식 다시!)는 줄의 끝으로 이동합니다. : 999를 입력하면 자연스럽게 ex 모드와 마찬가지로 999 행으로 이동합니다.
"i"는 삽입 모드로 들어가서 이제 행 대신 문자를 삽입하고 ".¬"대신 이스케이프를 누르면 종료됩니다. "I"는 시작 부분에 커서 아래 문자 뒤에 "a"를 삽입하고 현재 줄 끝 뒤에 "A"를 삽입합니다. 텍스트 입력이 끝나면 항상 이스케이프를 누르십시오. "x"는 커서 아래의 문자를 삭제하고 "D"는 커서에서 줄 끝까지 삭제합니다. "Y"는 현재 행을 잡아 당겨 (복사) "P"는 다시 붙여 넣습니다. ": pu"는 동일하지만 행 번호가 앞에 올 수 있습니다. ": ya"는 "Y"와 동일하며 선 범위에 적용하는 데 유용합니다. 마크 명령도 있다고 생각하지만 기억하지는 않습니다. 놓치지 마세요.
위의 내용은 제가 사용하는 것이며, 아마도 "효율적인"vi 사용자가 아닐 것입니다. 반면에, 나는 예를 들어 스크립트 편집 구성 파일과 같은 다양한 기능을 사용합니다. 여러 개의 conf 파일에서 호스트 이름 foo.bar.com을 www.foobar.com으로 변경해야합니까?
for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done
내가 말하려고하는 것은 vi의 문제는 사람들이 그것을 어려운 편집자로 생각한다는 것입니다. 당신의 사고 방식을 조금 바꾸고 그것을 아주 단순하면서도 강력한 대화 형 프로그래밍 언어로 보는 것이 전부입니다. 사용 가능한 명령의 하위 세트를 사용하더라도 편집기뿐만 아니라 나머지 Unix와 잘 통합 된 일반 스크립트 가능 도구로도 사용할 수 있습니다. 나는 나노가이 모든 것을 할 것이라고 의심한다.