텍스트의 긴 줄 (500 자 이상)은 어떻게 처리합니까?


19

일부 텍스트 형식의 경우 줄 바꿈이 중요합니다.

예를 들어, 나는 종종 Vim을 사용하여 MediaWiki 문서를 작성합니다. Markdown과는 달리 어디에도 줄 바꿈을 넣을 수 없습니다. 그래서 나는 많은 문자로 줄을 써야합니다.

이로 인해 긴 (200+ 문자) 또는 매우 긴 (1000+ 문자) 줄 이 발생할 수 있습니다 . Vim에서 사용하기가 매우 어색합니다. 하나의 예는 1000 문자 줄 중간에서 무언가를 편집하려면 커서를 500 번 움직여야합니다.

w또는 로 조금 더 빨라질 수 /있지만 여전히 어색합니다.

이것을 다루는 더 좋은 방법이 있습니까? 더 나은 운동 키? 일종의 "가짜 포장"(텍스트 는 파일에서 동작 tw=80하지만 \n파일 에서는 동작 하지 않는 것처럼 )?


1
화면 끝에서 빈 @ 라인을 피하기 위해 display = lastline설정할 수도 있습니다.
Random832

답변:


21

g일련의 명령을 사용 하여 보이는 화면 영역의 경계로 이동할 수 있습니다. 예를 들어, g$화면의 오른쪽 가장자리로 이동합니다 (선의 끝일 필요는 없음). 화면에gj 표시된대로 커서를 한 줄 아래로 이동합니다 (논리적 인 줄이 아님).

화살표 키를 리 바인드 할 수 있습니다.

nnoremap <Up> gk
nnoremap <Down> gj

또는 일부 사람들은 직접 리 바인드 k하고 j:

nnoremap k gk
nnoremap j gj

삽입 모드의 경우 다음을 사용할 수 있습니다.

inoremap <C-k> <C-o>gk
inoremap <C-j> <C-o>gj

또는:

inoremap <Up> <C-o>gk
inoremap <Down> <C-o>gj

또한을 사용 :set wrap하면 Vim이 줄을 줄 바꿈하여 모든 줄을 볼 수 있습니다. Vim이 줄 바꿈을하고 있음을 나타 내기 set showsbreak=+위해 a +를 사용할 수도 있습니다 .


특정 열 위치로 이동하려면 |명령을 사용할 수 있습니다 . 예를 들어 200|200 열로 이동합니다.


1
... g5j평소와 같이 5를 아래로 내립니다.
yo '

1
@yo '당신이 생각하는 것5gj
Martin Tournoij

1
@Carpetsmoker 이상한; 대부분의 명령에서는 명령 자체가 마지막 인 한 접두사와 숫자를 제공하는 순서는 중요하지 않습니다. 여기서는 그렇지 않습니다 :-/
yo '

'@yo, 음,에 g5j, g5바로 옆으로 이동하는 첫 번째 볼 5당신이를 적용하기 전에 j. 그래서 할 수없는 이유 5gj입니다.
Shahbaz

3

Vim은 부드러운 줄 바꿈을 지원하며, set wrap활성화하기 만하면 보이는 화면을 넘어 긴 줄을 줄 바꿈합니다. gj& gk를 사용 하여 줄 바꿈 된 선 위로 각각 위 / 아래로 이동할 수 있습니다 .


2

매우 긴 줄을 다룰 때 가장 큰 문제는 다른 줄 길이와 관련이 있습니다. 즉, 선의 끝 근처에서 위 또는 아래로 이동하면 창이 매우 왼쪽 또는 오른쪽으로 스크롤됩니다.

을 설정 virtualedit=all하면이를 피할 수 있습니다.이 기능 을 사용하면 줄이 끝나고 오랫동안 커서를 공간으로 이동할 수 있습니다.


1

다른 사람들이 말했듯이 g+ 를 사용 하여 이동할 수 있습니다. 그러나 선이 너무 길면 gj여러 번 눌러 아래쪽으로 이동하는 것은 인체 공학적이지 않습니다. 나는 .vimrc그것을 훨씬 쉽게하기 위해 다음을 가지고 있습니다 .

vmap <D-j> gj
vmap <D-k> gk
vmap <D-4> g$
vmap <D-6> g^
vmap <D-0> g^
nmap <D-j> gj
nmap <D-k> gk
nmap <D-4> g$
nmap <D-6> g^
nmap <D-0> g^

Mac에서는 명령 키를 길게 눌러 디스플레이 줄에서 j, k, $, 0 및 ^를 사용할 수 있습니다. 다른 시스템, 대신 D당신은 시도 할 수 M또는 AAlt 키 위해, 또는 C제어를위한.

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