이 글에서는 vim(버전 7.4)의 일반적인 사용법을 소개합니다. ****vim은 강력한 텍스트 편집기이자 vi의 향상된 버전입니다.
vim을 사용하여 파일을 편집하는 데 가장 일반적으로 사용되는 명령은 다음과 같습니다.
vim 파일은 새 파일이거나 원본 파일입니다. 이러한 명령을 실행하면 편집기가 열리고 파일 파일의 내용이 표시됩니다. 그림과 같이:
새 파일인 경우 하단 왼쪽에 "file"[새 파일]이라는 단어가 표시되고 오른쪽에는 줄 수와 문자 수를 나타내는 0,0-1이 표시됩니다. 커서가 현재 위치에 있습니다. 이전 파일을 열면 하단 왼쪽에 "file"이라는 단어 3L, 66C가 표시되어 파일 이름, 현재 커서의 줄 번호, 파일의 총 바이트 수를 나타냅니다. 파일에 문자가 없는 위치는 문자 ~로 시작됩니다.
아직 편집할 수 없습니다. vim이 파일을 편집하는 데는 여러 가지 모드가 있습니다. 현재 모드는 커서 이동, 복사 및 붙여넣기 및 기타 명령을 실행할 수 있는 일반 모드입니다. 삽입 모드와 최종선 모드.
일반 모드는 일반적으로 처음에는 다음 키를 눌러 삽입 모드로 들어갑니다.
으아악삽입 모드로 들어가면 하단에 삽입이라는 단어가 나타나면 커서 위치에 입력할 수 있습니다. 삽입 모드에서 일반 모드로 돌아가려면 ESC 키를 누르세요.
일반 모드에서 다음 키를 누르면 맨 아래 행 모드로 들어갑니다.
으아악맨 아래 행 모드에서 일반 모드로 돌아가려면 ESC 키를 두 번 눌러야 합니다
최하위 모드 실행: q(종료)는 편집기를 종료한다는 의미입니다. 파일 내용이 변경된 경우 다음을 실행해야 합니다. 저장하고 종료하지 않으려면 wq(종료)를 실행해야 합니다. 실행: q! 강제 종료; 다음 이름으로 강제 종료:wq!.
다음은 일반 모드에서 실행할 수 있는 명령어와 그 기능입니다.
텍스트 수정:
으아악여기에는 일부만 나열되어 있습니다. 초보자는 너무 많아서 기억하기 힘들 수도 있습니다. 사실, 그 중 몇 가지만 기억하면 대부분의 다른 기능을 사용하여 작업을 더 쉽고 빠르게 할 수 있습니다.
vim의 다양한 명령 대부분은 조합하여 사용할 수 있습니다.
예를 들어 커서의 현재 위치를 줄 끝까지 삭제하려면 d$;
를 실행하면 됩니다.예를 들어 현재 위치에 '단어' 50개를 삽입하려면 50iword ESC를 실행하고 ESC 키를 누르면 50단어가 삽입됩니다.
예를 들어 복사한 내용을 붙여넣고 싶은데 5번 붙여넣고 싶다면 5p를 실행하세요
예를 들어 마지막 명령을 다시 5번 실행하고 싶다면 5.;
를 실행하세요.이러한 명령을 능숙하게 사용하면 파일 쓰기 속도가 크게 향상됩니다.
삽입 모드(일반 모드에서는 a, i, o 등 누르기)에서 단어의 시작 부분을 입력한 다음 CTRL-P 또는 CTRL-N을 누르면 자동으로 완성됩니다.
맨 아래 행 패턴에는 3개의 시작 문자(:, /, ?)가 있으며, 그 중 / 및 ?는 패턴 검색과 일치하는 데 사용됩니다.
파일에서 centos 문자열을 검색하는 등의 작업은 다음과 같습니다.
으아악이 문자열을 입력하고 Enter를 누르면 vim은 일치하는 모든 문자열을 강조 표시하고 n 키를 누르면 커서가 일치하는 다음 문자열로 이동합니다. 그러면 커서가 이전 A 일치 문자열로 이동합니다. (맨쿼리를 생각해 보세요)
? 및 /를 사용하면 효과는 동일하지만 방향이 반대입니다.
: 앞에서 소개한 저장 및 종료 명령(wq)과 같은 많은 명령을 실행할 수 있습니다.
다음은 몇 가지 최종 모드 명령을 소개합니다.
으아악이러한 명령을 결합하여 셸 명령을 실행하고 결과를 현재 줄의 다음 줄에 쓸 수도 있습니다.
r!ls -l
현재 줄의 패턴과 일치하는 모든 문자열을 바꾸는 등 다른 모드에서 명령을 결합할 수도 있습니다.
s/pattern/string/g # g는 전역을 의미합니다
이 파일의 패턴과 일치하는 모든 문자열을 바꾸려면:
%s/pattern/string/g # %는 모든 줄을 의미합니다
지정된 줄과 일치하는 문자열을 바꾸려면:
n,ms/패턴/문자열/g
여기서 n과 m은 모두 줄 번호를 나타내는 숫자입니다. 점을 사용하여 현재 줄을 나타낼 수 있습니다
현재 줄부터 다섯 번째 줄까지 내용을 삭제하는 경우:
.,5d
현재 줄이 다섯 번째 줄 아래에 있으면 역삭제 프롬프트가 표시됩니다.
/pattern 및 :s/pattern/string을 사용할 때, 패턴은 문자열 패턴을 일치시키는 데 사용되는 정규식입니다.
정규 표현식은 이전에 소개된 와일드카드(기본 명령 소개 2)와 일부 유사점이 있지만 둘 사이의 차이점을 구별하는 데 주의해야 합니다.
와일드카드는 주로 파일 이름을 일치시키는 데 사용됩니다. 정규 표현식은 파일 이름을 일치시키는 데 사용될 수 있을 뿐만 아니라 실제로 모든 문자열과 일치할 수 있습니다. 와일드카드보다 다재다능하며 대부분의 프로그래밍 언어와 일부 도구(예: vim, grep, awk, sed)는 정규식을 직접 지원합니다.
다음은 사용될 일부 정규식의 개념과 사용법을 소개합니다.
匹配位置: ^ 表示行开头 $ 表示行结尾 表示单词结尾 匹配字符: . 表示匹配任意单个字符(相当于通配符中的?) [...] 表示匹配括号内任意单个字符 [^...] 表示匹配任意一个非列出字符 #参照通配符描述 /a 匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 /A 匹配非英文字符,等同于[^a-zA-Z]。 /d 匹配数字,等同于[0-9]或[[:digit:]]。 /D 匹配非数字,等同于[^0-9]。 /x 匹配十六进制数字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 /X 匹配非十六进制数字,等同于[^0-9A-Fa-f]。 /w 匹配单词,等同于[0-9A-Za-z_]。 /W 匹配非单词,等同于[^0-9A-Za-z_]。 /t 匹配TAB字符。 /s 匹配空白字符,等同于[ /t]或[[:blank:]]。 /S 匹配非空白字符,等同于[^ /t]。 /u 匹配大写字母,等同于[A-Z]或[[:upper:]]。 /U 匹配非大写字母。 /n 匹配换行 /r 匹配回车 (...) 匹配并捕获,用/1 /2 /3 ...来引用被捕获的字符串。 | 表示逻辑或 匹配数量: * 表示匹配前一个字符零到任意多次,相当于{0,}。 + 表示匹配前一个字符一到任意多次,相当于{1,}。 ? 表示匹配前一个字符零到一次,相当于{0,1}。#注意和通配符?的区别 {n,m} 表示匹配前一个字符n到m次。
在使用正则表达式时,有时需要在特殊字符之前加上转义字符”/”来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。
vim在使用如下正则表达式时需要将特殊字符转义:/、/{n,m}、/(…/)、/?、/+、/|下面结合正则举例说明vim中模式匹配及部分命令用法
匹配字符串world并使光标停留在匹配行后第三行行首:
/world/+3
将第三行到第八行行首添加注释符号//:
3,8s/^//////
注意这里的行首符^和转义符’/’的用法:
%g/^/sxyz/normal dd
此命令作用是全局匹配以空白后接xyz开头的行,并执行普通模式下的命令dd
如匹配6个以上的小写字母:
//a/{6,}
如交换冒号:两侧的字符串:
s//(./):/(./)//2:/1/ #注意这里是如何引用之前匹配的分组的
如将所有tag、tog和tug分别改为hat、hot和hut
%s/t/([aou]/)g/h/1t/g
如匹配hello或world两个单词:
///|/
这里只列出部分vim用到的正则表达式,关于正则的更多内容,以后的文章中还会有描述和举例。
vim编辑器是很强大的,这里只描述了部分初级使用方法。vim还能使用视图模式,编辑多文本,设置键盘映射,多剪贴板,录制宏,使用插件等等。完全可以用vim作为IDE来使用。但相对来说,vim的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。
위 내용은 기본 Linux 명령 - 텍스트 편집 vim의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!