vi 명령 행, 행 및 열


17

내가 사용하는 혼합 된 emacsvi( vim오랫동안)을. 그들 각각은 장점이 있습니다. 프로세스와 같은 컴파일에서 오류 출력을 구문 분석하고 행과 열 번호를 얻지 만 emacs행과 열로 직접 이동하는 데만 사용할 수 있습니다.

emacs +15:25 myfile.xml

vi난 단지 (맨 페이지)에 따라 행 번호가

vi +15 myfile.xml

vi +/pattern myfile.xml작동하지 않은 패턴 ( ) 에 커서를 놓을 수있는 옵션 이 있습니다. 그러나 패턴이 항상 파일에서 처음 나타나는 것은 아니기 때문에 도움이되지 않습니다.

vi파일의 15 행에서 25 열로 시작하려면 어떻게 해야합니까? -c옵션으로 무언가를 할 수 있습니까 ?


3
당신이 정력 태그 때문에, 당신은 생각이 quickfix채워 오류 (와 탐색의 목록, 정력 내에서 컴파일러를 실행 오류 출력을 구문 분석 시스템, :cp, :cn, :cl명령), 그리고 처음에 커서를 위치?
Random832

vi에서 파일을 열고 입력 :15하면 15 행으로 넘어갑니다. 이것이 도움이 되길 바랍니다
code ninja

답변:


17

당신이 사용할 수있는:

vi '+normal 15G25|'  myfile.xml

2
설명 : vi의 대부분의 명령 (즉, 대부분의 문자) 앞에는 기본 동작을 변경하거나 반복 (또는 특정 범위에 적용)하기 위해 숫자 (또는 범위)가 올 수 있습니다. vi 내에서 명령 모드에서 15G15 행 25|으로 이동하여 열 25로 이동할 수 있습니다. Christa는 명령 행에서 동일한 작업을 수행하는 방법을 보여줍니다.
Olivier Dulac

7

으로 파일 줄 플러그인 , 당신은 단순히 파일 이름에 라인과 열을 추가 할 수 있습니다, 모두 같은 명령으로 빔 내부를 호출 할 때 :edit:

vim myfile.xml:15:25

이것이 존재한다는 것을 알고는 좋지만 추가 플러그인이 필요없는 답변을 사용한다고 생각합니다
Dominique

@Dominique 당신은 또한 vim myfile.xml +15플러그인없이 행에 대해 할 수 있지만 내가 아는 한 열이 아닙니다
Izkata

5

재미를 위해서 -c 'normal 14j24l'15 행 25 번째 문자 가 표시됩니다.


4

나는 -c옵션 에 대해 모른다 .하지만 당신은 할 수 있어야한다 :

vi '+cal cursor(15,25)' myfile.xml

(괄호로 인해 인용하십시오 ())


cursor()열에 바이트 인덱스를 사용하지만 일반적으로 문자 수입니다.
Ingo Karkat

@IngoKarkat 정말 중요한가요? 텍스트는 UTF-8입니다.
도미니크

2
비 ASCII 문자에 중요하며, 둘 이상의 바이트로 표시됩니다. 또한 탭 및 제어 문자는 일반적으로 둘 이상의 표시 열을 차지합니다.
Ingo Karkat

2

가치가 없다:

-c command 

시작할 때 지정된 ex 명령을 실행하십시오. vi에는 하나의 -c 옵션 만 허용됩니다 . Vim은 최대 10 개를 허용합니다.이 옵션의 이전 형식 인 +command여전히 지원됩니다.

를 사용할 때 +command와 동일한 단일 ex command제한이 vi있습니다.

+/pattern또한 하나의 명령으로 제한됩니다 vi.

( vim 및 ex 편집기 에서 가져옴 )


1

vimrc에 다음 코드를 추가 할 수 있습니다. 파일로 돌아 오면 vim이 자동으로 이전 위치로 돌아갑니다.

if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.