No Verilog / C / C ++, os comentários podem começar //
.
Aqui está um exemplo de comentário,
//This is a comment
Eu gosto de usar o recurso localizar arquivo no ponto . Se o meu cursor estiver no nome do arquivo em `include "some_file.v"
.
Mas se meu cursor estiver no comentário do exemplo acima e se eu clicar C-x C-f
, o emacs tenta abrir um caminho experimental //This
!
Como faço para impedir seletivamente a ativação de localizar arquivo no ponto ? Nesse caso, quando o modo principal está verilog-mode
, como NÃO o faço find-file-at-point
quando meu cursor está em uma linha onde estão os 2 primeiros caracteres não espaciais //
?
C-x C-f
paraffap
ou para um invólucroffap
?C-x C-f
(porC-h k
RETC-x C-f
). Deveria dizer que "executa o comando"find-file
.find-file-at-point
recurso está desativado por padrão. Eu o habilitei viaido
. Eu tenho(setq ido-use-filename-at-point 'guess)
na minha configuração.Respostas:
Isso é um pouco desapontador, porque
ffap.el
tem algum código que deve fazer exatamente isso:Mas, infelizmente, depende de haver um espaço após o separador de comentários.
Também é muito decepcionante, porque os marcadores de comentários nunca devem fazer parte de qualquer string no momento. Então, aqui está uma versão corrigida
ffap-string-at-point
que tenta ignorar sistematicamente esses marcadoresPor efeito colateral, ele corrige seu problema, mas é muito mais geral. Gostaria de saber se essa correção deve ser integrada a montante.
fonte
(require 'ffap)
. Eu percebi este patch não estava sendo eficaz no emacs de init comoffap
provavelmente fica autoloaded .. o que não acontece até que eu interativamente fazerfind-file
Graças à solução postada pela @Sigma . Eu tive essa solução na minha configuração por mais de 2 anos e finalmente a enviei como um patch para o emacs upstream.
Confirmar no emacs master: e472cfe8
Aqui está o que o patch efetivamente faz:
fonte
Eu acho que hackers
find-file-at-point
é fácil, você pode usardefadvice
onfind-file-at-point
.O ponto principal é detectar se o cursor está em um comentário. Eu tive um problema semelhante ao desenvolver
evil-nerd-commenter
. Aqui está a função que você pode reutilizar. O truque é detectar a face da fonte atual.fonte
Eu sei que isso não é exatamente o que o OP pediu, mas uma maneira simples de obter o ffap para fazer o que você quer é dar apenas um pequeno conselho.
Edit: Fixed incorreta lambda quote (# '=> just') Eu entendo que o emacsen moderno prefere '# mas os que não o preferem, não o entendem.
Para mim, isso funcionou. Eu realmente apreciei as idéias de Kaushal Modi, Sigma, Chen bin e Giles.
Eu uso seqüências de caracteres estendidas de //// para quebrar a página, e geralmente estou no cabeçalho ao tentar encontrar o diretório atual ou um arquivo nele. Eu sei que esse conselho não servirá para todos; Coloquei aqui porque uma pesquisa no ffap me trouxe aqui. Outros podem ter conselhos pessoais diferentes para fornecer a função. Com base no que li aqui, escrevi o código acima.
Uso o Emacs desde 1984, e alguns dos novos recursos não ficam no meu radar até que eu veja algum código. Eu recomendo a seção Informações sobre conselhos. Ou no emacs
(Info-goto-node "(elisp)Advising Functions")
.fonte