Emacs 또는 Vim에서 "라이브" 블록 편집

Emacs 또는 Vim에서 "라이브" 블록 편집

jEdit는 블록 편집을 지원하지만 Emacs와 Vim은 동일한 주제에 대해 심각한 사용성 문제가 있는 것 같습니다. 누군가 여기에 알려지지 않은 내용을 채울 수 있다면 두 편집기 중 하나를 사용하는 것이 더 견딜 수 있을 것입니다.

  • 실제 직사각형 선택: 어디를 선택할 것인가화면에Emacs가 제한하는 계산 영역의 선형 선택이 아닌 직사각형입니다.
    • jEdit: 누르고 Ctrl선택합니다.
    • Vim: 클릭 Ctrl-v하고 선택하세요.
    • 이맥스:알려지지 않은;400줄이 넘는 것 같습니다끼워 넣다필요한.
  • 실시간 직사각형 편집: 결과가 어떻게 나올지 볼까요?모두블록을 선택한 후 편집할 때의 라인입니다.
    • jEdit: 입력을 시작하면 최종 결과가 표시됩니다.
    • Vim: 클릭해서 Shift-i들어가세요. 를 눌러 삽입 모드를 종료할 때까지 최종 결과만 첫 번째 줄에 표시됩니다 Esc.알려지지 않은한 번에 모든 행의 결과를 볼 수 있는 방법이 있습니까?
    • 이맥스:알려지지 않은; 유일한 방법은 C-x r t누를 때 텍스트가 채워지도록 설정하는 것 입니다 Ret.
  • 텍스트 외부에서 선택 시작 및 종료: 예를 들어, 각 줄의 처음 N자를 제거하고 싶지만 첫 번째와 마지막 줄에 N개 미만의 문자가 포함되어 있습니다.
  • 인라인 붙여넣기 블록:복사한 블록을 여러 줄을 붙여넣는 것처럼 붙여넣습니다. 예: 이미 존재하는 텍스트를 밀어넣습니다.아래에, 아니요.
    • jEdit: 기본값입니다. 블록을 블록으로 붙여넣으려면 먼저 다른 블록을 선택해야 합니다.
    • 윔:OEscVp.
    • 이맥스:알려지지 않은.

일반적인 Emacs 블록 선택 기능은 다음에서 찾을 수 있습니다.cua-mode끼워 넣다.

답변1

Vim에는 답변할 수 있지만 Emacs에는 답변할 수 없습니다.

텍스트 외부 선택 시작 및 끝:

:set virtualedit=block원하는 동작이 가능해집니다. 원한다면 초기 콜론을 제거하고 .vimrc에 추가할 수 있습니다. 자세한 내용은 :help 'virtualedit'Vim 내에서 확인하세요.

인라인 붙여넣기 블록:

명령 모드에서 클릭 만 하면 pVim은 블록을 삽입하고 각 줄의 오른쪽으로 문자를 밀어넣습니다. 다른 블록을 선택하고 을 클릭하면 pVim은 해당 블록을 붙여넣은 블록으로 대체합니다.

명령 모드 키 시퀀스를 사용하여 블록을 "한 줄씩" 붙여넣을 수 있습니다 OEscVp. 현재 행 위에 행을 삽입하고( O Esc) 행별로 선택한 V다음( ) 위에 붙여넣습니다( p). 예를 들어 yp매핑을 사용하여 이를 단축할 수 있습니다. 문자 그대로 입력 하고 Esc 키를 누르는 대신 :nmap yp O<Esc>Vp5번의 키 입력을 사용하십시오 .<Esc>

답변2

예를 들어, 각 줄의 처음 N자를 제거하고 싶지만 첫 번째와 마지막 줄에 N개 미만의 문자가 포함되어 있습니다.

Emacs: 첫 번째 줄부터 선택을 시작하고 누락된 문자 수(예: 공백)를 마지막 줄에 추가하고 kill-사각형을 사용합니다.

또는 줄 길이에 관계없이 창 내에서 자유롭게 이동할 수 있는 artist-mode또는를 참조하세요.picture-mode

인라인 붙여넣기 블록

Emacs: 먼저 블록을 kill-사각형으로 저장하거나 레지스터에 저장한 다음 삽입 지점으로 이동하여 삭제 직사각형을 사용한 다음 저장된 직사각형을 삽입합니다.

400줄 이상의 플러그인이 필요한 것 같습니다.

Emacs라면 왜 문제가 있는 걸까요? 플러그인을 컴파일할 수 있는데, emacs의 아이디어는 모든 것을 코어에 넣는 것이 아니라 플러그인을 사용하여 편집기를 확장하는 것입니다.

답변3

가지다'쿠아 모드'Emacsen 22.1 이상 버전과 함께 제공되거나 링크를 따라 이전 버전의 Emacs를 다운로드하세요. 하나 있다짧은 영상이 기능이 도입되었습니다.

일반적인 직사각형 명령의 경우 다음 내용을 읽어보세요.수동, 간략한 소개를 제공합니다.

답변4

vim에서 처음 n자를 삭제하는 일반적인 방법은 다음과 같은 작업을 수행하는 것입니다 :%s/.\{0,6\}//.

%전체 문서가 완성됩니다. 선택한 항목이나 관심 있는 실제 줄로 바꿀 수 있습니다. 이 s명령은 "교체"하는 데 사용됩니다. 정규식은 사용자가 제공한 내용으로 대체되며 특정 옵션을 추가하지 않는 한 각 줄은 한 번만 일치합니다. 구분 기호 입니다 /. 임의의 문자일 수 있지만 일반적으로 다른 문자를 사용하는 것이 더 유리하지 않는 한 사용됩니다(따라서 명령의 나머지 부분에서 이스케이프할 /필요가 없습니다 ). /첫 번째 구분 기호 뒤의 인수는 선택 항목에서 일치하는 문자열을 찾는 데 사용되는 정규식입니다. 두 번째 구분 기호 뒤의 인수는 일치 항목으로 대체됩니다.

따라서 이 명령은 모든 문자의 인스턴스를 0~6개 찾아 아무것도 없는 것으로 바꾸는 것을 의미합니다.

관련 정보