The question is above and my Google search wasn't succesfull. I guess I need to get the default editor and then use system("editor file.txt");
? How could I get the default editor?
Edit: I don't know why but stackoverflow doesn't like my "Hey,"... then not.
The Vi application is the default text editor on most Linux systems, so it's the primary interface you will use when you need to edit a configuration file.
It is not a built-in editor in Linux based system, but we can install it using the terminal. To install emacs editor open terminal (By CTRL+ALT+T) and execute the below command: sudo apt-get install emacs.
There is no official solution. Here is my recommendation for opening up a text editor:
If the filename extension is .txt
, and xdg-open
is avaliable on $PATH
and the $DISPLAY
variable is nonempty, then use xdg-open
. Otherwise use /usr/bin/sensible-editor
if it exists. Otherwise, use getenv("EDITOR")
, getenv("VISUAL")
or getenv("SELECTED_EDITOR")
. If none of them are set, try nano
, nano-tiny
and then vi
.
There is an example to get default editor environment, from visudo (It use default editor to open sudoers file ) source
/*
* Check EDITOR and VISUAL environment variables to see which editor
* the user wants to use (we may not end up using it though).
* If the path is not fully-qualified, make it so and check that
* the specified executable actually exists.
*/
if ((UserEditor = getenv("EDITOR")) == NULL || *UserEditor == '\0')
UserEditor = getenv("VISUAL");
if (UserEditor && *UserEditor == '\0')
UserEditor = NULL;
else if (UserEditor) {
if (find_path(UserEditor, &Editor, getenv("PATH")) == FOUND) {
UserEditor = Editor;
} else {
if (def_flag(I_ENV_EDITOR)) {
/* If we are honoring $EDITOR this is a fatal error. */
(void) fprintf(stderr,
"%s: specified editor (%s) doesn't exist!\n",
Argv[0], UserEditor);
Exit(-1);
} else {
/* Otherwise, just ignore $EDITOR. */
UserEditor = NULL;
}
}
}
You can check http://www.opensource.apple.com/source/sudo/sudo-9/sudo/visudo.c for the complete code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With