O argumento da linha de comandos do Vim não está sendo executado

1

Eu tenho procurado por um programa de calendário de linha de comando para Linux já há algum tempo. Eu percebi que deveria usar o vim. Eu quero ser capaz de ver facilmente uma semana de listas de tarefas. Atualmente usando este comando:

data=$(unset split; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="e"; fi; echo -n "$split $(date +"%F" -d"last sunday+$i day").txt|"; done; echo "\"") && precmd='-c "split todo.txt" -c "Calendar" -c "wincmd w"' && cmd="vim $precmd $data" && eval $cmd

Execute isso em um terminal de tela cheia, caso contrário, você terá um mau momento. Requer este plugin de calendário: link Se você não tiver o plug-in do calendário vim, isso também funcionará, mas não terá o calendário:

data=$(unset split; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="e"; fi; echo -n "$split $(date +"%F" -d"last sunday+$i day").txt|"; done; echo "\"") && precmd='-c "split todo.txt"' && cmd="vim $precmd $data" && eval $cmd

Isso faz exatamente o que eu quero, exceto que o painel inferior não carrega todo meu rolling.txt. Se eu pudesse pegar esse painel inferior para carregar meu todo.txt, eu estaria pronto! Eu não consigo entender porque o vim não aceita o meu:

-c "split todo.txt"

Sinta-se livre para corrigir minha horrenda festa também.

Além disso, percebo que o plugin do calendário vim tem um recurso de "diário", mas o AFAIK não divide a janela conforme necessário.

Obrigado!

Editar: Aqui está uma versão atualizada que corrige um problema quando executado aos domingos, e também permite que você especifique o deslocamento da semana, ou seja, "vimcal 0" "vimcal 1" "vimcal -1" etc. (É claro que você precisará criar um script e / ou alias)

data=$(unset split; unset day; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="split"; fi; if [ 'date +"%A"' = "Sunday" ] ; then day="sunday"; else day="last sunday"; fi; echo -n "$split $(date +"%F" -d"$day+$i day+$1 week").txt|"; done; echo "\"") && precmd='-c "edit todo.txt" -c "Calendar" -c "wincmd w"' && cd ~/Documents/todo && cmd="vim $precmd $data" && eval $cmd
    
por cat pants 02.10.2013 / 03:20

1 resposta

2

Vim faz executar :split todo.txt ; você verá o arquivo (oculto) na saída de :ls! . O problema se torna aparente quando você imprime a linha de comando executada (substituindo eval por echo ):

vim -c "split todo.txt" -c "e 2013-10-05.txt|vsplit 2013-10-04.txt|vsplit 2013-10-03.txt|vsplit 2013-10-02.txt|vsplit 2013-10-01.txt|vsplit 2013-09-30.txt|vsplit 2013-09-29.txt|"

Do buffer vazio padrão, você :split do arquivo todo.txt e, na mesma janela, :edit do primeiro arquivo datado. Você precisa trocar os dois comandos de abertura, assim:

data=$(unset split; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="split"; fi; echo -n "$split $(date +"%F" -d"last sunday+$i day").txt|"; done; echo "\"") && precmd='-c "edit todo.txt"' && cmd="vim $precmd $data" && eval $cmd
    
por 02.10.2013 / 08:50