이맥스-여러 열 하나의 버퍼


165

길지만 얇은 목록으로 형식이 지정되는 일부 어셈블리 코드를 편집하려고합니다. 나는 가지고있는 에이커의 수평 공간을 사용하고 한 번에 더 많은 코드를 화면에서 볼 수 있기를 원합니다. Emacs (또는 다른 편집기)가 동일한 버퍼를 가리키는 여러 열을 표시하는 방법이 있습니까?

Cx 3 (emacs) 및 : vsplit (vim)은 코드에 대한 여러 개별 뷰에 적합하지만 신문의 텍스트와 같이 한 열에서 다른 열로 흐르고 싶습니다.


1
Cx 3 및 : vsplit은 코드에 대한 여러 개의 개별 뷰에 적합하지만 한 열에서 다른 열로 이동하고 싶습니다 (신문의 텍스트)
user119857

1
감사! 4-6 개의 열 코드를보고 모든 코드를 30-40 자 (영문 기준)의 문자로 형식화하려고 시도했지만 자연스럽게 짧은 줄뿐만 아니라 모든 줄을 짧게하여 공간을 줄임으로써 결과를 매우 좋아합니다. 낭비되고 내 모든 화면 공간이 텍스트를 표시하는 데 사용됩니다. 또한 코드 블록이 2 차원이되어 시각적 이해와 구조적 감독이 쉬워집니다.
Erik Kaplun

답변:


248

팔로우 모드를 참조하십시오 . 발췌 :

팔로우 모드는 동일한 버퍼를 표시하고 하나의 키가 큰 "가상 창"으로 스크롤되는 두 개의 창을 만드는 부 모드입니다. 팔로우 모드를 사용하려면 하나의 윈도우 만있는 프레임으로 이동하여 Cx 3을 사용하여 두 개의 나란히 윈도우로 분할 한 다음 Mx 팔로우 모드를 입력하십시오. 그런 다음 두 창 중 하나에서 버퍼를 편집하거나 하나를 스크롤 할 수 있습니다. 다른 창이 그 뒤에옵니다. 팔로우 모드에서 한 창에서 보이는 부분의 바깥 쪽과 다른 창에서 보이는 부분으로 점을 이동하면 다른 창을 다시 선택하여 두 창이 마치 하나의 큰 창의 일부인 것처럼 취급합니다.

3
두 개 이상의 창에서 사용할 수 있습니까? 이것을 사용하여 네 개의 창을 가질 수 있습니까?
Yktula

두 창에서 분할되지 않고 동일한 방식으로 동일한 소스의 두 열을 개별적으로 편집 할 수 있는지 궁금합니다. 이것은 가장 좋은 예는 아니지만 스크립트 코드에 대한 하나의 열과 주석에 대한 다른 열이 있다고 가정하고 두 번째 열에있는 경우 "enter"를 누르고 다음 줄에서 두 번째 열에서 계속하고 싶습니다. 이맥스 나 다른 텍스트 편집기에서 가능합니까?
sw.

긴 long 함수 나 메소드를 편집하는 것이 매우 유용합니다. 난 항상이 모드를 찾아 두 개의 버퍼를 열고 혼자서이 작업을 수행, 감사 huaiyuan
위안 그는

17

이 함수를 사용하여를 호출 follow-mode하지만 다른 화면 크기에 대한 사용자 정의가 필요합니다.

;;; I want a key to open the current buffer all over the screen.
(defun all-over-the-screen ()
  (interactive)
  (delete-other-windows)
  (split-window-horizontally)
  (split-window-horizontally)
  (balance-windows)
  (follow-mode t))

플러스 (밸런스 윈도우) 만 표시하는 플러스 1! 매개 변수를 여러 번 나누고 함수를 대화 형으로 만들 수 있다고 생각합니다. 또한, 설정 scroll-margin하기 0에 의미가됩니다 follow-mode.
Erik Kaplun


2

Vim은 :vsplit-를 사용하여이를 수행 할 수 있으며 여러 "windows"(실제로 단일 "창"내의 섹션)에서 동일한 버퍼를 열 수 있습니다.

여기에 문서


3
질문에 언급 된 것처럼 emacs도 그렇게 할 수 있지만, 그것이 요구되는 것은 아닙니다.
justinhj 2016 년

1
와 결합 :scrollbind하면 거기에 있습니다.
bastibe

@Kragen-이를 수행하는 방법은 다음과 같습니다. 1. 창을 세로로 분할하여 단일 버퍼가 두 개의 창에 표시됩니다. 2. 두 번째 창의 첫 번째 줄이 첫 번째 창의 마지막 줄 뒤에 오도록 두 번째 창에서 스크롤합니다 .3. :set scrollbind각 창에서 명령을 실행 하십시오. 이제 창은 원하는대로 함께 스크롤됩니다. (참고 : scrollopt는 'ver'옵션을 포함해야합니다.)
Herbert Sitz

흠, 그것은 일종의 일을합니다. 멋있는! 감사! 누군가 자동으로 vim 스크립트를 작성해야합니다.
Kragen Javier Sitaker

-1

emacs 위키를 간략히 살펴보면 설명과 같은 모드가 표시되지 않습니다. 그러나 하나를 작성하는 것이 너무 어렵지 않아야합니다 ... Cx 3으로 창을 분할하고 다른 창에서 텍스트를 아래로 이동하고 텍스트를 이동할 때마다 다른 창과 동일하게 수행하면됩니다. ..

버퍼의 맨 아래에 도달 할 때 문제가 발생할 수 있습니다. 커서를 맨 위에있는 다른 창으로 즉시 이동 하시겠습니까?

흠, 어쩌면 쉽지 않을 것입니다. 그러나 여전히 가능해야합니다 ...


1
... 따라서 Elisp가 내가 배울 필요가있는 것들에 추가됩니다 :) 많은 감사 Brian;)
user119857

분명히 누군가가 이미 해냈지만 elisp는 놀라운 도구입니다!
Brian Postow 2016 년

-5

이것은 윈도우를 분할 할 때 emacs의 기본 동작입니다 (수직 분할의 경우 Cx 3). 현재 버퍼가 열려있는 두 개의 열이 있습니다.


1
그러나이 경우 팔로우 모드가 아닙니다. 팔로우 모드는 각 버퍼가 "다음 페이지"에 위치하도록하여 포인트를 이동하지 않고 눈을 움직여 버퍼를 읽을 수 있도록합니다.
jrockway

-7

Cx 3과 함께 수직 분할을 사용합니다. 그러면 현재 버퍼가 Cx o로 전환 할 수있는 두 개의 열로 분할됩니다.


2
한 열에서 다른 열로 자동으로 흐르지 않습니다.
kmarsh 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.