Vi vs vim, 또는 vi를 사용하려는 이유가 있습니까?


84

나는 * NIX 텍스트 편집기에 대해 약간 알고 있으며 (현재에서 nano로 마이그레이션 중 vim) Unix & Linux SE에서 조금 둘러 본 후 vi상당히 많은 질문에서 'vim'대신 사용되는 것으로 나타났습니다 . 나는 'vim'이 'Vi IMproved'를 의미한다는 것을 알고 있으며, 그것을 염두에두고 누군가 vim 대신 vi를 사용하는 이유가 궁금합니다. vi는 vim보다 중요한 이점이 있습니까?

편집 : 내 질문이 잘못 해석되고 있다고 생각합니다. vim은 vi보다 훨씬 강력하고 기능이 완벽하다는 것을 알고 있습니다. 내가 알고 싶은 것은 vi가 vim보다 메모리 사용이 적거나 * nix 시스템의 보급률 등과 같이 vim보다 유리한 경우가 있다는 것입니다.


25
좋은 점은 vi모든 POSIX 호환 시스템에있을 것으로 예상 할 수 있다는 것입니다.
jordanm

1
사실, 우분투 표준 설치는 포함 vi하지 vim.. 우분투 ;-) BTW 가장 사용자 친화적 인 배포판 중 하나입니다
amyassin

10
@amyassin 이것은 잘못된 것입니다. 대부분의 Linux 배포판과 마찬가지로 Ubuntu는 다음을 포함 vim합니다. 기본 설치를 vi가리키는 기호 링크 일뿐 vim입니다.
jlliagre

2
내 조언은 : Vim을 사용하지만에 vi대한 POSIX 사양을vi 사용하여 배우십시오 . 그렇게하면 Vim 확장에 대한 지식은 물론 이식 가능한 지식도 얻을 수 있습니다 .
와일드 카드

1
@DDK 당신은 나의 진술에서 "결국"을 놓쳤다. "LS -l / 기타 / 대안 / VI"-> "lrwxrwxrwx 1 루트 루트 17 janv 1 2016 / 기타 / 대안 / VI -.> /usr/bin/vim.tiny"
jlliagre

답변:


61

vi또한 POSIX 표준 편집기 입니다. 많은 구현이 있으며 vim적어도 Linux에서는 가장 인기가 있습니다.

많은 전통적인 유닉스 호환 OS vi는 표준에 매우 가까운 구현을 제공하지만 vim양날의 칼로 만드는 많은 추가 기능을 추가했습니다.

물론 이러한 확장은 일반적으로 편집 프로세스를 용이하게하고 유용한 기능을 제공하도록 설계되었습니다. 그러나 일단 당신이 그들 중 일부에 익숙해지면 (구문 채색과 같은 장식적인 것이 아니라 편집기의 행동을 바꾸는 것들) 쉽게 그것들을 잊어 버릴 수 있습니다. 그리고 원래의 BSD 코드를 기반으로 한 구현을 포함하여 다른 구현을 사용하는 것은 매우 실망 스러울 수 있습니다. 반대의 경우도 마찬가지입니다.

이것은 POSIX가 아닌 bashism을 사용하는 스크립트에서 dashor 와 같은 더 많은 정통 쉘 구현에 직면하는 문제와 매우 유사합니다 ksh.


29

vi는 vim보다 다른 장점이 없습니다. Vim은 Vi보다 더 많은 장점을 가지고 있습니다. 당신은에 관심이있을 수 있습니다 : 왜, 왜, 왜 그 #? @! nutheads vi를 사용합니까?

편집 : 또한 읽기 : VIM을 배우는 것이 가치가 있습니까?


4
네. IDE를 사용하지 마십시오. 강제로 사용하는 편집기는 Vim이 아니기 때문입니다.
Keith

1
@Keith Xcode와 Eclipse를 모두 사용하며 vi로만 편집 할 수 있습니다.
ott--

@Keith SlickEdit는 훌륭한 Vim 에뮬레이션을 가지고 있으며 IDEA가 가까이에 있습니다. 또한 Visual Studio에는 ViEmu가 있습니다.
demonkoryu

1
IntellIJ에는 표준 편집기의 동작을 재정의하는 멋진 vim 플러그인이 있습니다.
JulienD

24

Vim으로 편하게 편집하면서 내 인생의 많은 부분 (어린 시절은 포함되지 않음)을 보낸 후, 나는 vi를 사용하여 약 한 달을 보냈습니다. 그렇게하면서, 나는 모든 텍스트 수정 요구에 Vim에 의존하고 있음을 깨달았습니다. vi로 여행하기 전에 텍스트를 대체하거나 큰 파일 그룹에서 유사한 작업을 수행해야 할 때마다 Vim에서 파일을 열고 :bufdo명령을 실행하고 일부 파일을 들여 쓰거나 형식을 지정해야 할 때마다 Vim에서 열어 Vim =gw명령을 사용 합니다. 나는 Vim에 의존했습니다. 이러한 명령을하지 않았다 VI를 실현 후, 나는 벌크 텍스트 변환을 수행하도록 강요했다 sed와 같은 다른 프로그램에 대해 많은 것을 배웠다 awkindent. 결국 Vim을 사용하도록 다시 전환했지만 기능이 적은 편집기를 사용하여 얻은 지식은 상당하며 매우 유용한 것으로 판명되었습니다. 텍스트 편집기 외부의 도구에 대해 배우는 것 외에도 vi를 더 잘 알게되었습니다. Vim이없는 새로운 시스템이나 서버에서 작업 할 때마다, 한 달 동안 여행을하기 전보다 vi를 사용하는 것이 훨씬 편합니다.

또한 지난달 저렴한 WM8650 태블릿에 Linux를 설치했으며 Vim과 vi 사이에 눈에 띄는 성능 차이가 있음을 알았으므로 태블릿에서 vi를 사용하는 경향이 있습니다.


3
나는 이것이 우리가 배우는 것보다 더 나은 것들을 모호하게하는 데 도움이되는 도구 인 IT의 일반적인 문제라는 것을 알게되었습니다.
danno

사실, 많은 파일에 대한 처리 현재 위치에서 파일 편집은 이식 awk는 또는 Sed의 수행 할 수 없습니다 중 하나 . ( -i둘 다 의 스위치는 GNU 확장입니다.) 그러나 다음과 같이 이식 가능하게 사용할 수 있습니다for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Wildcard

12

vim 없이는 힘들지만 vi는 참을 수 없습니다 . 그러나 전자를 배우는 것은 적어도 나중에 가능한 모든 것을 처리하는 방법에 대한 아이디어를 남길 것입니다.

vim 인터페이스는 기본적으로 vi와 거의 비슷합니다. vim이있는 시스템에서 작업하는 경우 가장 먼저해야 할 일은 다음과 ~/.vimrc같습니다.

syntax enable
set nocp
set wildmenu

내가 선호하는 다른 것들이 있습니다-이제 랩 및 번호 매기기 등-그러나 신경 쓰지 마십시오. "syntax enable"은 기본 구문 강조 표시를 설정합니다 filetype plugin on. "nocp" 는 vi 호환성을 끄고 이것은 vim과 yee vi 를 구별하기 시작 showmode하는 것입니다. 방법). "와일드 메뉴"는 몇 가지 일을 할 때 수평 완성 메뉴를 제공하여 삶을 더 쉽게 만듭니다.

vim 의 텍스트 편집 기능은 emacs와는 비교할 수없는 수준입니다. 배우기 쉽지는 않지만 일단 알면 마우스 메뉴보다 훨씬 빠르며 마우스 메뉴 기반 인터페이스의 간단한 주요 매크로 대안보다 훨씬 더 동적입니다. 프로그래밍을 위해 때때로 Eclipse와 같은 IDE와 함께 vim을 사용하지만 vim에서 대부분의 작업을 수행합니다.

그 길을 가면 lol, 자동 완성 및 taglist 플러그인을 살펴보십시오. 그리고 어두운면을 조심하십시오.


나는 항상 추가 set mouse=a합니다.
ott--

프로그래밍 주석과 관련하여 eclim이 흥미로울 것입니다 ...
ire_and_curses

@ire_and_curses : 시도하지 않았습니다. Eclipse와 vim은 소스 파일을 모니터링하여 외부에서 업데이트 할 수 있도록하며 한 데스크탑에서 다른 데스크탑으로 전환하는 것이 한 데스크탑에서 다른 데스크탑으로 전환됩니다. 아주 좋은 아이디어처럼 보입니다.
금발 미녀

이 답변이 선택된 답변이어야한다고 생각하지는 않지만 (편향되어 있기 때문에) 차이점을 이해하는 데 도움이되는 관점의 유형입니다. 입장을 가져 주셔서 감사합니다.
geneorama

8

장점은 vi가 일반적으로 AIX 또는 Solaris와 같은 엔터프라이즈 UNIX에 사전 설치되어 있다는 것입니다. 설치 미디어에서는 vim에 액세스 할 수 없습니다.


1

나는 것으로 나타났습니다 유일한 선택 Vi을 통해 VIM내가 복사하고 내가 사용한 텍스트 문서 나 설정 파일 붙여 넣기하고 때 cat명령을 사용합니다. 내가하려고 할 때 때문입니다 ctrl-c다음 ctrl-vVIM연 문서, 그들의 코멘트 뿅을 가지고 모든 행을 강제로. 내가 사용하는 그래서 Victrl-v또는 pasteVi연 문서, 내가 복사 정확하게 붙여 넣습니다. 그 외에는 VIM하루 종일 사용 합니다.

즐겨!


5
:set paste
Patrick

3
.vimrc에서 pastetoggle = <F2> 설정 ( vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste )
Dave

1

이전 답변에서 이미 언급했듯이 vi에는 거의 모든 UNIX 시스템이 있습니다.

방금 예제를 추가하고 싶었습니다. 아치 리눅스는 설치 프로그램이나 기본 배포판이 기본적으로 vim과 함께 제공되지 않지만 둘 다 vi와 함께 제공되는 특히 인기 있고 가벼운 배포판입니다.

이 VI의 장점이 아닌 자체 단순히 수동으로 정력을 설치할 수 있기 때문에, 그리고 정력 의도 된 목적을 위해 VI의 우수 아무것도 텍스트 편집기를 필요로하는 설치에 달성 할 필요가 거의 없다합니다. 그러나 차이점과 vi가 vim보다 보편적이고 가벼우다는 것을 이해하면 틈새 시장의 이점을 얻을 수 있습니다.

또한, 포괄적으로, vi가 vim의 직접적인 선구자라고 명시 적으로 언급 한 사람은 없습니다. Vim은 vi가 가진 모든 것 이상으로 특별히 고안되었습니다.

따라서 매우 직접적인 방식으로 vim은 vi보다 우수하기 때문에 vi보다 우수 합니다 .


1

vi over vim을 사용하는 유일한 이유는 다른 선택이 없을 때입니다.

vim이 "vi enhanced"를 나타내는 많은 이유가 있습니다!

관련 게시물에서 차용하여 다음과 같이 답변했습니다.

  1. 여러 개의 창-가로, 세로 및 탭.
  2. 시각적 강조.
  3. : help 명령을 통한 온라인 도움말.
  4. 매크로를 레지스터에 기록한 다음 실행할 수 있습니다.
  5. 이전 vi의 미친 실행 취소 토글 대신 여러 번 실행 취소 (및 다시 실행)하십시오.
  6. 명령 행 히스토리, 검색 히스토리.
  7. getcwd ()와 같이 사용 가능한 많은 함수와 함께 포함 된 전체 언어
  8. 크게 확장 된 패턴 일치.
  9. ctrl-P & ctrl-N을 통한 단어 완성.
  10. 내장 파일 탐색기 (약간 복잡하지만 유용 할 수 있음)
  11. ESC 키는 실제로 당신이 시도했던 명령을 vi와 같이 (이상적으로) 실행하는 대신 탈출합니다.
  12. bufdo, argdo 및 windo를 통해 모든 버퍼, args 또는 창에서 명령을 실행하는 기능.

unix.stackexchange.com/a/425597/85039 답변 에서 언급 한 "많은, 많은"이유를 여기 로 가져 왔을 것입니다. 이 답변은 조금 나아질 것입니다. 그렇지 않으면 실제 답변보다 주석처럼 읽습니다
Sergiy Kolodyazhnyy

요점을 알았어. 답변은 업데이트되었습니다. 어제 작성한 관련 답변에서 빌 렸습니다.
Paul T

1

이것은 Vim Koans에서 발췌 한 것입니다 .

마스터 Wq와 유닉스 마스터

옛 유닉스 마스터가 Wq 마스터에게 왔습니다. “문제가 있습니다. Wq. 당신은 Vim의 길을 가르칩니다. vi는 거룩하지만 Vim은 그렇지 않습니다. 코드가 확산되고 기능이 많은 메모리; 바이너리는 방대하고 동작이 일관되지 않습니다. 이것은 유닉스의 방식이 아닙니다. 나는 당신이 당신의 학생들을 오도하는 것을 두려워합니다. 무엇을 할 수 있습니까?”

마스터 WQ는 고개를 끄덕였다. "당신이 맞아요."그가 말했다. “Vim이 고장났습니다. 우리가 고쳐 보자. 시작할까요?”

옛 유닉스 마스터가 동의하고 포탄을 열었습니다. 그는 타이핑했다 :

$ vi vim.c

그는 코딩을 시작했다. Wq 마스터는 잠시 동안 지켜 보면서“vi의 어떤 구현을 사용하고 있습니까? 네비? 정력? 엘비스?”

유닉스 마스터는“모릅니다”라고 말했다. "문제가되지 않습니다."

마스터 WQ는 고개를 끄덕였다. 유닉스 마스터는 잠시 기절하고 문서를 저장하지 않고 닫았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.