unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Calling external programs in emacs
@ 2017-01-13 18:53 Sam Nirvana
  2017-01-13 20:46 ` tomas
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Sam Nirvana @ 2017-01-13 18:53 UTC (permalink / raw)
  To: help-gnu-emacs

I'm new to emacs, so forgive my inexperience.

As you know, with Vim I can compile, say, a TeX file from within the 
editor with the following command:

	:!pdftex %

Is there a way to do the same thing with emacs?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 18:53 Calling external programs in emacs Sam Nirvana
@ 2017-01-13 20:46 ` tomas
  2017-01-13 21:25 ` James K. Lowden
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: tomas @ 2017-01-13 20:46 UTC (permalink / raw)
  To: help-gnu-emacs

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Fri, Jan 13, 2017 at 06:53:42PM +0000, Sam Nirvana wrote:
> I'm new to emacs, so forgive my inexperience.
> 
> As you know, with Vim I can compile, say, a TeX file from within the 
> editor with the following command:
> 
> 	:!pdftex %
> 
> Is there a way to do the same thing with emacs?

Yes. If your buffer is in TeX mode, you can either hit C-c C-f or
go through the menu TeX -> TeX file. You can control which command
is issued by setting the variable "tex-command" (try, when in TeX
mode, hitting C-h C-v, then entering tex-command (TAB autocompletes)
and follow the instructions.

Other modes (C, whatever) have similar compile commands. You get
a new buffer with the compile log; errors have a link to the source
spot, when possible.

For TeX mode, you have shortcuts for opening the DVI file (C-c C-v)
- -- or the PDF file, depending on how you set up things.

Try M-x customize-group RET tex RET and follow the links, to get an
impression on what is there. Ask away when stuck :-)

regards
- -- t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlh5PI4ACgkQBcgs9XrR2kaVVgCeMOEIiH6bgznaxIwIEyHMMsHn
BgQAn26yySm50OfpdmKuaVwu4x8S8ua4
=hDWw
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 18:53 Calling external programs in emacs Sam Nirvana
  2017-01-13 20:46 ` tomas
@ 2017-01-13 21:25 ` James K. Lowden
  2017-01-13 21:51   ` Joost Kremers
  2017-01-13 22:34 ` Dan Espen
  2017-01-18  3:40 ` Rusi
  3 siblings, 1 reply; 8+ messages in thread
From: James K. Lowden @ 2017-01-13 21:25 UTC (permalink / raw)
  To: help-gnu-emacs

On Fri, 13 Jan 2017 18:53:42 +0000 (UTC)
Sam Nirvana <samnirvana@linux.org> wrote:

> I'm new to emacs, so forgive my inexperience.
> 
> As you know, with Vim I can compile, say, a TeX file from within the 
> editor with the following command:
> 
> 	:!pdftex %
> 
> Is there a way to do the same thing with emacs?

The emacs function you want is called shell-function.  It's usually
mapped to M-! (meta-bang).  You can verify that with either 

	C-h f shell-function
or
	C-h k M-!

To run asynchronously, see async-shell-function, usually M-&.  

HTH.  

--jkl



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 21:25 ` James K. Lowden
@ 2017-01-13 21:51   ` Joost Kremers
  0 siblings, 0 replies; 8+ messages in thread
From: Joost Kremers @ 2017-01-13 21:51 UTC (permalink / raw)
  To: James K. Lowden; +Cc: help-gnu-emacs


On Fri, Jan 13 2017, James K. Lowden wrote:
> On Fri, 13 Jan 2017 18:53:42 +0000 (UTC)
> Sam Nirvana <samnirvana@linux.org> wrote:
>
>> I'm new to emacs, so forgive my inexperience.
>> 
>> As you know, with Vim I can compile, say, a TeX file from 
>> within the 
>> editor with the following command:
>> 
>> 	:!pdftex %
>> 
>> Is there a way to do the same thing with emacs?
>
> The emacs function you want is called shell-function.  It's 
> usually
> mapped to M-! (meta-bang).  You can verify that with either 
>
> 	C-h f shell-function
> or
> 	C-h k M-!
>
> To run asynchronously, see async-shell-function, usually M-&.  

It should perhaps be pointed out that while M-! works to call 
`shell-command', Emacs usually provides some interface to the most 
commond commands you may want to call for a specific file type. So 
running pdftex on a file doesn't require calling M-! and typing 
out the command. Personally, I use AUCTeX (which you should really 
check out if you use TeX or LaTeX), which makes it possible to 
call TeX & friends with C-c C-c. It even tries to guess what 
command you're most likely to execute next. 



-- 
Joost Kremers
Life has its moments



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 18:53 Calling external programs in emacs Sam Nirvana
  2017-01-13 20:46 ` tomas
  2017-01-13 21:25 ` James K. Lowden
@ 2017-01-13 22:34 ` Dan Espen
  2017-01-14 11:44   ` Jens Lechtenboerger
  2017-01-18  3:40 ` Rusi
  3 siblings, 1 reply; 8+ messages in thread
From: Dan Espen @ 2017-01-13 22:34 UTC (permalink / raw)
  To: help-gnu-emacs

Sam Nirvana <samnirvana@linux.org> writes:

> I'm new to emacs, so forgive my inexperience.
>
> As you know, with Vim I can compile, say, a TeX file from within the 
> editor with the following command:
>
> 	:!pdftex %
>
> Is there a way to do the same thing with emacs?

That runs a shell command in vi.
Emacs can do that also (M-!),
but for compiling, you want to use the emacs command:

M-x compile

you probably want to bind a key to that.

The main reason you want to do a compile is because the Emacs
functions next-error and previous-error work after a compile.

The M-x command by default runs the command "make -k".
You can just type your command over that.

I highly recommend creating a Makefile.


-- 
Dan Espen


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 22:34 ` Dan Espen
@ 2017-01-14 11:44   ` Jens Lechtenboerger
  0 siblings, 0 replies; 8+ messages in thread
From: Jens Lechtenboerger @ 2017-01-14 11:44 UTC (permalink / raw)
  To: help-gnu-emacs

On 2017-01-13, at 17:34, Dan Espen wrote:

> Sam Nirvana <samnirvana@linux.org> writes:
>
>> As you know, with Vim I can compile, say, a TeX file from within the 
>> editor with the following command:
>>
>> 	:!pdftex %
>>
>> Is there a way to do the same thing with emacs?

In addition to the various suggestions for shell commands so far:
If you are looking for an integrated (La)TeX environment, you may
like AUCTeX: https://www.gnu.org/software/auctex/

Best wishes
Jens



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-13 18:53 Calling external programs in emacs Sam Nirvana
                   ` (2 preceding siblings ...)
  2017-01-13 22:34 ` Dan Espen
@ 2017-01-18  3:40 ` Rusi
  2017-01-18 18:21   ` John Mastro
  3 siblings, 1 reply; 8+ messages in thread
From: Rusi @ 2017-01-18  3:40 UTC (permalink / raw)
  To: help-gnu-emacs

On Saturday, January 14, 2017 at 12:23:46 AM UTC+5:30, Sam Nirvana wrote:
> I'm new to emacs, so forgive my inexperience.
> 
> As you know, with Vim I can compile, say, a TeX file from within the 
> editor with the following command:
> 
> 	:!pdftex %
> 
> Is there a way to do the same thing with emacs?

Others have already told you about M-! (also to be found on Menu→Tools→Shell Command)

The % trick however does not work OTB in emacs
Here is some elisp that can help that
https://lists.gnu.org/archive/html/help-gnu-emacs/2008-08/msg00482.html


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Calling external programs in emacs
  2017-01-18  3:40 ` Rusi
@ 2017-01-18 18:21   ` John Mastro
  0 siblings, 0 replies; 8+ messages in thread
From: John Mastro @ 2017-01-18 18:21 UTC (permalink / raw)
  To: help-gnu-emacs@gnu.org

Rusi <rustompmody@gmail.com> wrote:
> On Saturday, January 14, 2017 at 12:23:46 AM UTC+5:30, Sam Nirvana wrote:
> > I'm new to emacs, so forgive my inexperience.
> >
> > As you know, with Vim I can compile, say, a TeX file from within the
> > editor with the following command:
> >
> >       :!pdftex %
> >
> > Is there a way to do the same thing with emacs?
>
> Others have already told you about M-! (also to be found on Menu→Tools→Shell Command)
>
> The % trick however does not work OTB in emacs
> Here is some elisp that can help that
> https://lists.gnu.org/archive/html/help-gnu-emacs/2008-08/msg00482.html

Someone may have already mentioned this, but Emacs's built-in way to
achieve something similar is to type `M-! M-n'. The M-n will cause the
relative file name of the current buffer to be inserted, leaving point
before it.

        John



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-01-18 18:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-13 18:53 Calling external programs in emacs Sam Nirvana
2017-01-13 20:46 ` tomas
2017-01-13 21:25 ` James K. Lowden
2017-01-13 21:51   ` Joost Kremers
2017-01-13 22:34 ` Dan Espen
2017-01-14 11:44   ` Jens Lechtenboerger
2017-01-18  3:40 ` Rusi
2017-01-18 18:21   ` John Mastro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).