2014-04-04 3 views
1

ILocationInFileProvider에서 Xtext 프로젝트의 일부를 디버깅해야합니다. 내 디버그 세션에서 나는 offsetlength을 포함하는 일부 Region 객체를 한 점에서 얻습니다. 이 부분은 (offset, length)과 일치하는 원본 텍스트 파일에서 시각화하고 싶습니다.문서의 특정 오프셋으로 이동

문서의 영역을 표시/선택/강조 표시 할 수있는 "선택"또는 "goto"기능을 제공하는 쉘 명령 또는 도구 (성공하지 못한 Sublime Text, Gedit, Geany에서 시도 함)가 있습니까? 이러한 정보를 바탕으로? 가능하면이 간단한 작업을 Linux 환경에서 수행하고 싶습니다. 심지어 간단한 "점프 위치로"도 유용 할 수 있습니다. 어떤 생각?

+0

오프셋이 바이트 단위입니까? –

+0

내가 조작하는 "오프셋"의 의미가 정확히 무엇인지 모르겠습니다. Xtext 프레임 워크로 채워집니다. 그러나 내 문서는 UTF-8 형식이므로 특수 문자가 없으면 각 문자는 1 바이트 길이입니다. Gedit을 체크인하고 바이트 길이는 문서의 문자 수와 정확히 동일합니다. – Antwane

답변

2

, 오프셋 (offset)로 이동하는 것 1234,이 바이트가 아닌 문자로 계산 일반 모드

1234go 

에,

:goto 1234<cr> 

중 하나를 수행하거나.

+0

위대한 작품입니다. 감사합니다! 나는 정력 전문가가 아니며 자주 사용하지 않는다 ... 그러나이 대답은 나를 도왔다.그래픽 텍스트 편집기에도이 기능이 있는지 궁금해서 대답을 수락하기 위해 몇 가지만 기다립니다. – Antwane

2

매우 우아하지는 않지만 dd을 사용하여 파일의 바이트를 선택할 수 있습니다. 그리고 vi을 사용하면 쉽게 껍질을 벗기고 그것을 할 수 있습니다. 예를 들어

: 우분투, iseek하지 건너 사용처럼

echo Freddy Frog | dd iseek=3 bs=1 count=5 2>/dev/null 
ddy F 

같습니다 : 1의 블록 크기를 설정하고, 입력 스트림에 3 바이트를 추구하고 당신에게 보여줍니다

echo Freddy Frog | dd skip=3 bs=1 count=5 2>/dev/null 

다음 5 바이트. 당신이 파일을 사용하는 경우

, 그것은 것입니다 : 당신이 일을 단순화하려면

dd if=yourfile iseek=3 bs=1 count=5 2>/dev/null 

, 당신은 스크립트에서 그것을두고 "보기"

#!/bin/bash 
dd if="$1" bs=1 skip=$2 count=$3 2> /dev/null 
로 저장할 수 있습니다

chmod +x view 

은 그럼 당신은

01을 입력 할 수 있습니다 않습니다

가 : 당신이 bs=1를 설정하지 않으면, 그것은 512의 기본 값을 가져옵니다, 다음 iseek는 3x512 바이트가 아닌 3 바이트 ... 정력에

+0

나는 우분투 14.04에 있는데, dd는 8.21이다. 피연산자 iseek이 인식되지 않습니다. 대신 탐색을 사용하려고 시도하지만 작동하지 않습니다. 'dd if =./myfile seek = 8390 bs = 1 count = 7 2>/dev/null'은 내 문서의 7 번째 문자를 반환합니다. – Antwane

+0

우분투의'dd '에 대한 답을 업데이트했습니다. –

+0

간단한 스크립트를 만드는 방법도 보여주었습니다. –