/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Short key i emacs til unix commando?
Fra : saneman


Dato : 09-04-08 22:20

Jeg har lavet et script 'myscript' (er eksporteret til PATH) som jeg
gerne vil definere en short key til i emacs. Tænker noget i stil med
følgende i min .emacs fil:

(global-set-key "\C-a" 'myscript)

Så når jeg trykker C-a så køres scriptet 'myscript'. Men det tætteste
jeg er kommet i emacs er:

M-x myscript

Men jeg skal så skrive 'myscript' hver gang efter jeg har tastet M-x.
Kan man ikke bare definere i .emacs at en short key skal køre scriptet?

 
 
Peter Mogensen (10-04-2008)
Kommentar
Fra : Peter Mogensen


Dato : 10-04-08 09:26

saneman wrote:
> Jeg har lavet et script 'myscript' (er eksporteret til PATH) som jeg
> gerne vil definere en short key til i emacs. Tænker noget i stil med
> følgende i min .emacs fil:
>
> (global-set-key "\C-a" 'myscript)
>
> Så når jeg trykker C-a så køres scriptet 'myscript'.

Man kan komme lang med
M-x repeat-complex-command
.... og så kigge i dens history efter hvordan en commando man lige har
udført ser ud i elisp.

Så hvis du vil udføre shell-scriptet "myscript" fra emacs, så gør:
M-x shell-commmand <RET> myscript <RET>
M-x repeat-complex-command
brug piletasterne eller C-p til at kigge til bage i history og se elisp
for det som du gjorde.
Brug global-set-key til at binde en tast til det elisp du finder.

Peter

PS: Måske er du også interesseret i shell-command-on-region



saneman (10-04-2008)
Kommentar
Fra : saneman


Dato : 10-04-08 14:03

Peter Mogensen wrote:
> saneman wrote:
>> Jeg har lavet et script 'myscript' (er eksporteret til PATH) som jeg
>> gerne vil definere en short key til i emacs. Tænker noget i stil med
>> følgende i min .emacs fil:
>>
>> (global-set-key "\C-a" 'myscript)
>>
>> Så når jeg trykker C-a så køres scriptet 'myscript'.
>
> Man kan komme lang med
> M-x repeat-complex-command
> ... og så kigge i dens history efter hvordan en commando man lige har
> udført ser ud i elisp.
>
> Så hvis du vil udføre shell-scriptet "myscript" fra emacs, så gør:
> M-x shell-commmand <RET> myscript <RET>
> M-x repeat-complex-command
> brug piletasterne eller C-p til at kigge til bage i history og se elisp
> for det som du gjorde.
> Brug global-set-key til at binde en tast til det elisp du finder.
>
> Peter
>
> PS: Måske er du også interesseret i shell-command-on-region
>
>

Måske jeg misforstår dig men det er netop det jeg gerne vil undgå. Jeg
har brugt M-x term til at kører scriptet fra men vil gerne lave det som
en key i emacs så jeg kan springe det led over hvor man hver gang skal
åbne en shell/term.

Peter Mogensen (10-04-2008)
Kommentar
Fra : Peter Mogensen


Dato : 10-04-08 14:39

saneman wrote:
> Peter Mogensen wrote:
>> saneman wrote:
>>> Jeg har lavet et script 'myscript' (er eksporteret til PATH) som jeg
>>> gerne vil definere en short key til i emacs. Tænker noget i stil med
>>> følgende i min .emacs fil:
>>>
>>> (global-set-key "\C-a" 'myscript)
>>>
>>> Så når jeg trykker C-a så køres scriptet 'myscript'.
>>
>> Man kan komme lang med
>> M-x repeat-complex-command
>> ... og så kigge i dens history efter hvordan en commando man lige har
>> udført ser ud i elisp.
>>
>> Så hvis du vil udføre shell-scriptet "myscript" fra emacs, så gør:
>> M-x shell-commmand <RET> myscript <RET>
>> M-x repeat-complex-command
>> brug piletasterne eller C-p til at kigge til bage i history og se
>> elisp for det som du gjorde.
>> Brug global-set-key til at binde en tast til det elisp du finder.
>>
>> Peter
>>
>> PS: Måske er du også interesseret i shell-command-on-region
>>
>>
>
> Måske jeg misforstår dig men det er netop det jeg gerne vil undgå. Jeg
> har brugt M-x term til at kører scriptet fra men vil gerne lave det som
> en key i emacs så jeg kan springe det led over hvor man hver gang skal
> åbne en shell/term.

Ja. du har vist misforstået mig.
Pointen var at efter man har brugt M-x til at køre noget, så kan man med
repeat-complex-command se hvilken elisp kode, der skal til for at
repræsentere det, så man kan skrive det i en global-set-key

Jørgen Heesche (10-04-2008)
Kommentar
Fra : Jørgen Heesche


Dato : 10-04-08 10:13

saneman wrote:
> Jeg har lavet et script 'myscript' (er eksporteret til PATH) som jeg
> gerne vil definere en short key til i emacs. Tænker noget i stil med
> følgende i min .emacs fil:
>
> (global-set-key "\C-a" 'myscript)
>
> Så når jeg trykker C-a så køres scriptet 'myscript'. Men det tætteste
> jeg er kommet i emacs er:
>
> M-x myscript
>
> Men jeg skal så skrive 'myscript' hver gang efter jeg har tastet M-x.
> Kan man ikke bare definere i .emacs at en short key skal køre scriptet?

Det kan gøres meget nemmere med en alias i en X-terminal.
Start en xterm.
I filen .bashrc indsættes flg. linie:
alias C-a='myscript'
Hver gang der derefter startes en xterm taster man bare C-a, så kører
myscript.

--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@webspeed.dk

Jørgen Heesche (10-04-2008)
Kommentar
Fra : Jørgen Heesche


Dato : 10-04-08 12:33

Jørgen Heesche wrote:
.... SKIP ...
>
> Det kan gøres meget nemmere med en alias i en X-terminal.
> Start en xterm.
> I filen .bashrc indsættes flg. linie:
> alias C-a='myscript'
> Hver gang der derefter startes en xterm taster man bare C-a, så kører
> myscript.
>
Se lige Peter Mogensen's svar, jeg tror en alias short-cut kan bruges i
en emacs-shell, eller måske bedre: en emacs-term.
Se:
Running Shell Commands from Emacs
http://jamesthornton.com/emacs/node/emacs_442.html
Citat:
M-x shell
Run a subshell with input and output through an Emacs buffer.
You can then give commands interactively.
M-x term
Run a subshell with input and output through an Emacs buffer.
You can then give commands interactively.
Full terminal emulation is available.


--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@webspeed.dk

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste