Come creare un tasto rapido globale per Mac OS X per aprire il file .txt in MacVim.app su vim 'mark'?

1

Posso e come posso creare il tasto di scelta rapida globale di Mac OS X (possibilmente mappato a un servizio OS X, come quello che OmniFocus e Fantastical offrono per inserire nuove voci nella loro casella di posta / calendario, rispettivamente) per aprire un file .txt specifico in MacVim.app in uno specifico segno vim ?

Ho il sospetto che io possa utilizzare Automator / AppleScript o alcuni di essi in combinazione con i marchi "globali" di Vim per ottenere questo risultato, ma incerto.

    
posta Johnny Utahh 07.01.2014 - 20:59
fonte

2 risposte

2

Due possibilità sono Maestro tastiera o Alfred . Keyboard Maestro imposterà una scorciatoia da tastiera globale.

Presumo che ci sia un'utilità da riga di comando per MacVim come per BBEdit e se può aprirsi a un "segno vim" specifico. Ad esempio, il comando di BBEdit si chiama bbedit e apre un numero di riga specifico usando ": xy" dove "xy" è il numero di riga. Puoi creare una scorciatoia da tastiera Maestro che aprirà un file specifico usando questo comando

/usr/local/bin/bbedit /path/to/filename:33
    
risposta data 08.01.2014 - 02:59
fonte
0

Questo è stato interessante :) e l'ho capito!

La soluzione è basata su 3 passaggi (potresti farlo anche su 2):

  1. Crea uno script di shell che apra il file di testo desiderato su un contrassegno specifico
  2. Crea un flusso di lavoro di Automator per eseguire questo script
  3. Aggiungi un collegamento al flusso di lavoro

Eccoci:

1. ShellScript per aprire il file di testo su un segno specifico vim: launchlog.sh

# $HOME/bin/launchlog.sh
# This will open $HOME/test.txt on vim mark b
/Applications/mvim -c "execute 'normal! \'b'" $HOME/test.txt

2. Crea un flusso di lavoro di Automator

Ci sono molti tutorial su come realizzare i flussi di lavoro di Automator. Attenersi a quello che descrive meglio per te.

Devi creare un flusso di lavoro che esegua uno script di shell. Lì si incolla il percorso per il tuo script. Il mio flusso di lavoro è chiamato openJournal.workflow

Comesuggerimento:iflussidilavorosonomemorizzatisotto$HOME/Library/Services

3.Assegnauncollegamentoalflussodilavoro

QuestopuòesserefattosottoSystempreferences>Tastiera>Tastidisceltarapida.NellasezioneServizipuoiassegnarealtuoflussodilavoroappenacreatounascorciatoiadatastiera.NelmioesempiohoaggiuntoShift+Ctrl+Jcomecollegamento.

Ora puoi aprire il tuo file di testo specifico sullo specifico segno vim (nel mio esempio il segno vim b ) premendo Shift + Ctrl + J sulla tastiera.

Ovviamente, funziona solo se hai un segno vim impostato sul tuo file di testo.

Fallo in 2 fasi

È possibile inserire il contenuto dello script della shell nel flusso di lavoro di Automator.

Quindi si salta la creazione dello script di shell stesso. Ma questo ha lo svantaggio, che devi modificare il flusso di lavoro dell'automator se vuoi un altro comportamento. Anch'io mi piace la flessibilità di cambiare lo script della shell e avere il comportamento desiderato.

Spero che questo aiuti.

    
risposta data 28.03.2017 - 23:19
fonte

Leggi altre domande sui tag