Posso visualizar no Emacs as propriedades de um arquivo que já abri?
9
Abri um arquivo no Emacs. Eu gostaria de ver informações sobre esse arquivo, como data de criação, tamanho etc. no Emacs. Existe um atalho de tecla ou algum comando do Emacs para isso? Obrigado.
C-x d RETserá aberto diredno diretório do arquivo visitado. Não mostrará informações especificamente sobre o arquivo visitado, mas todos os arquivos no diretório.
JRM
11
Que tal ?: M-x eval-expression RET (dired-other-window buffer-file-name) RET O comando alterna para "ls" que o dired usa é personalizável.
Lawlist
Você também pode colocar isso em uma função e adicionar uma combinação de teclas. (defun file-info () (interactive) (dired-other-window buffer-file-name)) (global-set-key (kbd "C-c d") 'file-info)
JRM
11
Gostaria de encorajar o @jrm a postar uma resposta semelhante ao comentário acima, que inclui a variável let-bound, dired-listing-switchespara que o OP possa exibir qualquer atributo de arquivo suportado pela versão aplicável de "ls".
lawlist
Obrigado por todos os comentários e esforços. O sugerido por jrm funcionou imediatamente.
Romario 31/05
Respostas:
9
Aqui está um comando que usa diredcom sinalizadores de arquivo detalhado para o lscomando. Convém personalizar esses sinalizadores, dependendo do seu sistema operacional.
A primeira linha fornece os UID "lh" e GID "usuários".
As próximas três linhas são os últimos horários de acesso, modificação e alteração de status, formatados como listas. Você pode convertê-los em seqüências legíveis por humanos com current-time-string:
(current-time-string '(206146401950040152000))
Nesse caso, o valor de retorno é "Ter 23 de outubro às 16:12:03 de 2012". Com isso, você pode criar sua própria função para extrair os bits em que estiver interessado. Se você quiser apenas ver os metadados no minibuffer, isso será exibido para você:
Obrigado pela resposta. Mas não sei ou não consegui inserir o primeiro código: (atributos de arquivo (nome do arquivo-buffer)) Acho que ele deve ser inserido dentro do minibuffer, mas como alterno para o minibuffer? Eu sei Cg para desligar, mas não sei como mudar no.
Romário
Para executar o código elisp no minibuffer, insira M-:. Você verá Eval: no minibuffer e poderá digitar o código. Para o defun, (defun file-metadata...você pode tentar isso colando-o no buffer de rascunho e digitando point dentro da função M-C-x. Então você pode chamar a função com M-x file-metadata.
Tyler
Ops, sim, isso deu certo. Ei, isso é útil. Como você apontou, ele lista os atributos do arquivo na forma nativa e, com as funções do conversor, é possível extrair algumas informações mais detalhadas sobre o arquivo. Eu selecionaria esta resposta como (muito) útil. Obrigado!
C-x d RET
será abertodired
no diretório do arquivo visitado. Não mostrará informações especificamente sobre o arquivo visitado, mas todos os arquivos no diretório.M-x eval-expression RET (dired-other-window buffer-file-name) RET
O comando alterna para "ls" que o dired usa é personalizável.(defun file-info () (interactive) (dired-other-window buffer-file-name)) (global-set-key (kbd "C-c d") 'file-info)
dired-listing-switches
para que o OP possa exibir qualquer atributo de arquivo suportado pela versão aplicável de "ls".Respostas:
Aqui está um comando que usa
dired
com sinalizadores de arquivo detalhado para ols
comando. Convém personalizar esses sinalizadores, dependendo do seu sistema operacional.Crie uma combinação de teclas ao seu gosto.
fonte
Não parece haver um comando para obter essas informações interativamente, embora você possa usar o dired como o @jrm sugere.
Você pode obter essas informações com o seguinte código elisp:
Isso retornará uma lista como esta:
A primeira linha fornece os UID "lh" e GID "usuários".
As próximas três linhas são os últimos horários de acesso, modificação e alteração de status, formatados como listas. Você pode convertê-los em seqüências legíveis por humanos com
current-time-string
:Nesse caso, o valor de retorno é "Ter 23 de outubro às 16:12:03 de 2012". Com isso, você pode criar sua própria função para extrair os bits em que estiver interessado. Se você quiser apenas ver os metadados no minibuffer, isso será exibido para você:
Chamar isso interativamente produz:
Mais detalhes no manual (elisp) Atributos de arquivo.
fonte
M-:
. Você veráEval:
no minibuffer e poderá digitar o código. Para o defun,(defun file-metadata...
você pode tentar isso colando-o no buffer de rascunho e digitando point dentro da funçãoM-C-x
. Então você pode chamar a função comM-x file-metadata
.