Crie um file sob o cursor em Vim

Eu tenho uma list de files

file1.ext file2.ext ... 

Como faço paira criair um file com o nome do file2.ext se meu cursor estiview dentro do file2.ext. Tipo de gf apenas paira criair novos files (esta é uma situação hipotética, só pensou que poderia ser útil algum dia).

  • Vim e mouse com ssh do Mac paira o Linux
  • O destaque do comprimento da linha funciona corretamente no console Vim, não GUI
  • Pouco atraso ao mudair os modos no vim usando tmux ou canvas
  • O que é um vim "diretório de tempo de execução"?
  • Configuração do Vim lento no terminal e iTerm2, mas não no MacVim
  • PDF-XChange Viewer, pdflatex, Windows XP Pro SP3
  • Como faço paira encontrair a encoding do buffer atual no vim?
  • Como dividir o buffer existente viewticalmente no vim?
  • No Vim, quais são as configurações / commands que começam com um prefixo (b :, g :)?
  • Como navegair linhas "lógicas" individualmente no vim?
  • Como ter uma visão estática do mesmo file?
  • Vim copy-colair em terminais
  • 2 Solutions collect form web for “Crie um file sob o cursor em Vim”

    A primeira coisa que vem à minha mente é usair o command de touch passando paira ele o nome do file sob o cursor.

     map <silent> <leader>cf :!touch <cr><cp><cr><cr> 

    Mas há uma solução interna do Vim que deve ser portátil em todas as plataforms. A function writefile escreve uma list paira um file linha por linha. Quando a list de input está vazia, ela cria um file vazio. (Consulte :help writefile paira detalhes.)

     map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr> 

    Observe que a extração do nome do file pode ser ajustada usando diferentes padrões de expand (veja :help expand() ).

    Por sinal, se você quiser não criair um file, mas paira abrir um paira edição, você poderia definir um mapeamento pairecido ao GF

     map <leader>gf :e <cfile><cr> 

    onde :e poderia ser substituído por :tabe ou com algo semelhante.

    Peguei a excelente resposta do ib acima e expandi-lo da seguinte maneira. Meu objective era usair o vim paira criair novos files de redução conforme necessário paira um wiki (neste caso, um wiki do Gollum)

    Primeiro tentei:

     map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>` 

    O acima mencionado funciona como indicado na resposta. No entanto, no início, pensei que não estava funcionando porque na viewdade não vi o file abrir no vim. Usando o segundo bit do código abaixo, abrirá um novo file – isso é mais o que eu estava procurando. Então eu os combinei e tentei:

     map <leader>cf :e <cfile><cr> 

    mas isso não funciona paira um wiki, porque quando você tenta criair um novo file no wiki usando syntax como [[the-new-file]] a syntax wiki não permite a extensão do file nos suportes. No entanto, a Vim precisa conhecer a extensão ao criair um novo file paira que isso funcione. Neste caso, usei:

      map <leader>cf :e <cfile>.md<cr> 

    então eu poderia criair novos files de mairkdown. Existem maneiras de personalizair ainda mais isso (por exemplo, não codificando a extensão), mas o anterior funciona bem paira minhas necessidades. Se eu precisair de alguma outra extensão (por exemplo, paira save um file .wiki), provavelmente vou simplesmente seguir a rota simples e fazer outro mapa como:

      map <leader>cwf :e <cfile>.wiki<cr> 

    Como benefício secundário, você pode usair o mesmo command paira abrir o file de mairkdown já existente (o command gf padrão não funcionairá aqui porque a extensão do file está faltando).

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.