2014-01-27 5 views
2

도움이 되었습니까?vim - 한 번의 클릭으로 이진 증분

CTRL-A는 숫자를 증가 시키지만 10 진수로만 증가시킵니다.

나는 한 번의 클릭으로 진 스타일을 증가 싶습니다

소스 :

3'b000: clk_out = clk_in0; 
3'b000: clk_out = clk_in0; 
3'b000: clk_out = clk_in0; 
3'b000: clk_out = clk_in0; 
3'b000: clk_out = clk_in0; 
3'b000: clk_out = clk_in0; 

대상 :

3'b000: clk_out = clk_in0; 
3'b001: clk_out = clk_in1; 
3'b010: clk_out = clk_in2; 
3'b011: clk_out = clk_in3; 
3'b100: clk_out = clk_in4; 
3'b001: clk_out = clk_in5; 

모든 팁은 감사, 감사합니다!

+0

직접 구현해야합니다. 또는 외부 도구를 사용하십시오. – Kent

답변

0

내장 된 방법이 없습니다. 'nrformats' 옵션은 영문자, 8 진수 및 16 진수 형식 만 지원합니다.

SwapIt - Extensible keyword swapper 플러그인은 <C-a>/<C-x> 명령에 맞춤 시퀀스를 오버로드합니다. 이진수가 작 으면 모든 순열을 구성 할 수 있습니다 (원래 명령과 같이 [count]을 지원합니다). 아마 3'b 접두어도 포함해야합니다.

또는 이진수를 처리하는 사용자 지정 함수를 구현해야합니다. 언급 된 플러그인에서 구현 아이디어를 얻을 수 있습니다.

2

최근에 어떤 크기의 정수로 기본 변환을 수행하는 플러그인 인 magnum.vim을 완성했습니다.

이 플러그인으로 솔루션은 (긴) 한 줄짜리 라이너입니다.

nnoremap g<C-A> :<C-U>s/[01]\+/\=printf('%0'.len(submatch(0)).'s',magnum#Int(submatch(0),2).Add(magnum#Int(v:count1)).String(2))/<CR> 

이렇게하면 vimrc에서 g CTRL-A을 사용하여 이진수를 늘릴 수 있습니다. 카운트하는 것도 효과가 있습니다. 다른 라이브러리에 종속 magnum.vim

Demo of g CTRL-A mapping

주, 구글의 maktaba, 당신이 당신의 목적을 위해 너무 무거운이 방법을 찾을 수 있도록.

+0

나는 항상 작은 스크린 캐스트를 만들고 싶었다. :) – glts

관련 문제