O EditPad Lite possui um bom recurso ( CTRL- E, CTRL- I) que insere um carimbo de hora, por exemplo, "2008-09-11 10:34:53" em seu código.
Qual é a melhor forma de obter essa funcionalidade no Vim?
(Estou usando o Vim 6.1 em um servidor Linux via SSH. Na situação atual, vários de nós compartilhamos um login, portanto, não quero criar abreviações no diretório inicial se houver outra maneira integrada de obter um carimbo de data / hora. )
:r!date "+\%F \%T"
ou:r!date +\%F\ \%T
.Para que funcione em várias plataformas, basta colocar o seguinte em
vimrc
:Agora você pode simplesmente pressionar F3 a qualquer momento dentro do Vi / Vim e você obterá um carimbo de data / hora, como
2016-01-25 Mo 12:44
inserido no cursor.Para uma descrição completa dos parâmetros disponíveis, verifique a documentação da função C strftime () .
fonte
:Date
, adicionando a seguinte para o meu~/.vimrc
arquivo de configuração:command! Date put =strftime('%Y-%m-%d')
. Ele insere a data em uma nova linha. não consegui fazer uma versão sem nova linha.Por que todo mundo está usando
:r!
? Encontre uma linha em branco e digite!!date
no modo de comando. Salve um pressionamento de tecla![nb Isso canalizará a linha atual em stdin e, em seguida, substituirá a linha pela saída do comando; daí a parte "encontre uma linha em branco".]
fonte
Como uma extensão da resposta de @Swaroop CH,
é uma forma mais compacta que também imprimirá o fuso horário (na verdade, a diferença do UTC, em uma forma compatível com ISO-8601).
Se você preferir usar uma ferramenta externa por algum motivo,
fornecerá um carimbo de data / hora compatível com RFC-3339 completo; use em
ns
vez des
para a precisão de Spock, e canalizetr ' ' T
para usar um T maiúsculo em vez de um espaço entre data e hora.Além disso, você pode achar útil saber que
irá ler os comandos de
somefile.vim
: desta forma, você pode configurar um conjunto personalizado de mapeamentos, etc., e então carregá-lo quando estiver usando o vim nessa conta.fonte
:put=strftime(""%FT%T%z")
: r! encontro
Você pode então adicionar o formato ao comando de data (data de manual) se quiser exatamente o mesmo formato e adicioná-lo como um alias do vim também
: r! data + "\% Y - \% m - \% d \% H: \% M: \% S"
Isso produz o formato que você mostrou em seu exemplo (data no shell não usa \%, mas apenas%, o vim substitui% pelo nome do arquivo atual, então você precisa escapar dele).
Você pode adicionar um mapa em seu .vimrc para que ele coloque o comando automaticamente, por exemplo, cada vez que você pressiona F3:
(Editado acima :)) (Editar: alterar parte do texto para código, de modo que
pode ser exibido)
fonte
Para um carimbo de data / hora Unix:
Você também pode mapear este comando para uma tecla (por exemplo, F12) no VIM se você o usa muito:
Coloque isso em seu .vimrc:
fonte
Do Vim Wikia .
Eu uso isso em vez de mover minha mão para apertar uma tecla F:
Agora no modo Inserir basta digitar tds e assim que clico na barra de espaço ou retorno, obtenho a data e continuo digitando.
Eu coloquei
%b
lá, porque gosto de ver o nome do mês. A%F
me dá algo para classificar por data. Eu posso mudar isso para%Y%m%d
que não haja caracteres entre as unidades.fonte
Unix, use:
Windows, use:
Mais detalhes: veja Insert_current_date_or_time
fonte
Outra forma rápida não incluída nas respostas anteriores: digite-
!!encontro
fonte
Eu queria um comando personalizado
:Date
(não um mapeamento de teclas) para inserir a data na posição atual do cursor.Infelizmente, comandos diretos como
r!date
resultam em uma nova linha. Então, finalmente, descobri o seguinte:que adiciona a string de data / hora na posição do cursor sem adicionar nenhuma nova linha (altere para
normal a
adicionar após a posição do cursor).fonte