Editando um .jar com 'vim'

7

Em uma instância do Amazon Linux, estou tentando editar um arquivo jar remotamente por meio do putty. vim fornece um navegador conveniente, que exibe um prompt com uma lista dos arquivos contidos no jar:

> vim filename.jar

" zip.vim version v22
" Browsing zipfile /home/ec2-user/tigase/libs/tigase-muc.jar
" Select a file with cursor and press ENTER

      453  01-14-2013 10:01   META-INF/MANIFEST.MF
      110  01-14-2013 10:01   META-INF/maven/tigase/tigase-muc/pom.properties
     4675  01-14-2013 10:01   META-INF/maven/tigase/tigase-muc/pom.xml
     5751  01-14-2013 10:01   tigase/component/AbstractComponent.class
     2337  01-14-2013 10:01   tigase/component/AbstractComponent$1.class
     ....

No entanto, depois de selecionar um arquivo (por exemplo, AbstractComponent.class) e pressione Enter, dentro do vim eu recebo:

caution: filename not matched:       5751  01-14-2013 10:01   tigase/component/AbstractComponent.class

e o arquivo não abre.

Como nota lateral, também notei que, se eu extrair o jar (com unzip ou jar ) e abrir um arquivo extraído com o vim, o conteúdo será malformado:

Êþº¾^@^@^@2^A^[^H^@     ^H^@
^H^@^K^H^@^U^H^@^V^H^@!^H^@#^H^@^^A^@) stanza already with type='...
^A^@^C()I^A^@^C()V^A^@^C()Z^A^@^F<init>^A^@^NDEFAULT_WRITER^A^@^WFE...
....

Alguma idéia de como superar o problema de erro ou formatação?

    
por ile 05.02.2014 / 10:43

2 respostas

4

However after selecting a file (eg. AbstractComponent.class) and press Enter, within vim I get:

caution: filename not matched

Este é provavelmente um bug conhecido no plugin ZIP do vim - o plugin não manipula corretamente arquivos ZIP que contenham comentários ZIP. Veja por exemplo este post da lista de discussão

As a side note, I also noticed that if I extract the jar (either with unzip or jar) and open an extracted file with vim, the contents are misformatted

Isso ocorre porque a maioria dos arquivos dentro de um JAR são arquivos de classe Java compilados (sufixo de arquivo .class ). Estes são dados binários, e o vim não é realmente adequado para editá-los, porque o vim é um editor de texto , não um editor binário.

Você pode editá-las no vim usando o comando xxd (consulte "Como usar o xxd" nos documentos do vim ), ou você pode usar um editor hexadecimal, como bvi .

De qualquer forma, visualizar diretamente o conteúdo de um arquivo de classe raramente é útil, já que você precisa entender o formato do arquivo de classe binária para lê-los.

Você poderia explicar por que está tentando abrir arquivos dentro de um JAR? Então talvez possamos ajudar.

    
por 05.02.2014 / 11:15
1

Foi assim que resolvi os problemas de formatação.

Primeiro instale o emacs

 yum install emacs

Em seguida, use o comando abaixo para ler o conteúdo

emacs somejar.jar

selecione o conteúdo e pressione Enter

Para salvar e sair do editor, pressione C-x C-s (Ctrl + x, seguido por Ctrl + s).

Fonte: Como usar o editor do Emacs no Linux

    
por 13.02.2017 / 05:05

Tags