Preferiría escribir mis mensajes de confirmación en Vim, pero los está abriendo en Emacs.
¿Cómo configuro Git para usar siempre Vim? Tenga en cuenta que quiero hacer esto globalmente, no solo para un solo proyecto.
Preferiría escribir mis mensajes de confirmación en Vim, pero los está abriendo en Emacs.
¿Cómo configuro Git para usar siempre Vim? Tenga en cuenta que quiero hacer esto globalmente, no solo para un solo proyecto.
Respuestas:
Si desea configurar el editor solo para Git, haga lo siguiente (no necesita ambos):
core.editor
en su configuración de Git:git config --global core.editor "vim"
GIT_EDITOR
variable de entorno:export GIT_EDITOR=vim
Si desea configurar el editor para Git y también otros programas , configure las variables de entorno VISUAL
y estandarizadas EDITOR
*:
export VISUAL=vim
export EDITOR="$VISUAL"
* Establecer ambos no es necesariamente necesario, pero algunos programas pueden no usar el más correcto VISUAL
. Ver VISUAL
vsEDITOR
.
Para texto sublime : agregue esto a .gitconfig
. El --wait
es importante (permite escribir texto en sublime y esperará el evento guardar / cerrar).
[core]
editor = 'subl' --wait
'subl' se puede reemplazar por la ruta completa del ejecutable, pero generalmente está disponible cuando se instala correctamente.
git config --global
escribiría en su archivo de configuración git personal (por usuario). En Unices lo es ~/.gitconfig
. Entonces esto lo configuraría para todos sus repositorios.
git commit --amend
-w
no es necesario; -w {scriptout}
guarda todos los caracteres que escribe al editar para reproducirlos más tarde. Quizás lo esté confundiendo -f
, lo cual es necesario cuando se llama a la versión GUI de Vim. Es decir, si usa mvim
, entonces el editor que especifique debería ser en mvim -f
lugar de mvim
.
Copia y pega esto:
git config --global core.editor "vim"
En caso de que quieras saber lo que estás haciendo. De man git-commit
:
VARIABLES DE MEDIO AMBIENTE Y CONFIGURACIÓN
El editor utilizado para editar el mensaje de registro de confirmación se elegirá entre la
GIT_EDITOR
variable de entorno, lacore.editor
variable de configuración, laVISUAL
variable de entorno o laEDITOR
variable de entorno (en ese orden).
VISUAL
o EDITOR
, pero ciertamente no usan GIT_EDITOR
o core.editor
.
En Ubuntu y también en Debian (gracias @MichielB), también es posible cambiar el editor predeterminado ejecutando:
sudo update-alternatives --config editor
Lo que provocará lo siguiente:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number:
alternatives
sistema de Debian es una forma mucho más fácil de administrar los valores predeterminados para los tipos de programas compatibles. Para referencia: debian-administration.org/article/91/…
GIT_EDITOR
y EDITOR
no funciona --ubuntu
update-alternatives
mostrará los editores que se hayan instalado. Koen simplemente no tiene Emacs instalado.
En Windows 7, al agregar el editor "Sublime" todavía me daba un error:
Anulación de la confirmación debido a un mensaje de confirmación vacío.
Sublime no pudo mantener el foco.
Para solucionar esto, abrí el archivo .gitconfig en la carpeta c: / users / username / y agregué la siguiente línea con la opción --wait fuera de las comillas dobles.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Espero que sea útil para alguien que enfrenta un problema similar con Sublime.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
y presiona Enter
. Se abrirá el Bloc de notas ++.-multiInst
como parámetro a notepad ++ y posiblemente -notabbar
. Haga esto si git no parece saber cuándo ha terminado de editar el archivo y espera para siempre o no espera nada.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- es decir, parámetros fuera de las comillas simples delimitadoras
Para hacer que Visual Studio Code (vscode) sea su editor git predeterminado
git config --global core.editor "code --wait"
Y si está trabajando con diseñadores que usan la línea de comando, entonces Pico, y no sabe atajos;)
git config --global core.editor "pico"
O
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom debe configurarse para ejecutarse desde la línea de comandos para que funcione lo anterior:
OS X : instalar comandos de shell desde Atom: barra de menú> Atom> Instalar comandos de shell
Windows : no se requiere acción: el átomo está configurado para ejecutarse desde la línea de comandos de forma predeterminada
Ejecute este comando:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
O solo:
$ git config --global core.editor "subl -w"
-w
parámetro. P.ej. $ git config --global core.editor "code -w"
. Cosas ordenadas
git config --global core.editor notepad.exe
Presione Ctrl+ Spara guardar su mensaje de confirmación. Para descartar, simplemente cierre la ventana del bloc de notas sin guardar.
En caso de que presione el atajo para guardar, luego decida abortar, vaya a Archivo-> Guardar como, y en el cuadro de diálogo que se abre, cambie "Guardar como tipo" a "Todos los archivos (*. *)". Verá un archivo llamado "COMMIT_EDITMSG". Elimínelo y cierre la ventana del bloc de notas.
Editar: Alternativamente, y más fácilmente, elimine todo el contenido de la ventana abierta del bloc de notas y presione guardar. (¡Gracias mwfearnley por el comentario!)
Creo que para pequeños informes, como los mensajes de confirmación, el bloc de notas sirve mejor, porque es simple, está ahí con ventanas, se abre en poco tiempo. Incluso tu sublime puede tardar un segundo o dos en encenderse cuando tienes una carga de complementos y otras cosas.
\r\n
(nueva línea en Windows) y \n
(nueva línea en Linux, también predeterminada para Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
para que se abra y guarde el mensaje de edición predeterminado y no necesite "guardar como"
Esto proporciona una respuesta para las personas que llegan a esta pregunta que quieran vincular un editor que no sea vim.
Es probable que el recurso vinculado, por Github , se mantenga actualizado cuando se actualizan los editores, incluso si las respuestas en SO (incluido este) no lo están.
Asociar editores de texto con git
La publicación de Github muestra exactamente qué escribir en su línea de comando para varios editores, incluidas las opciones / indicadores específicos de cada editor para que funcione mejor con git.
Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Texto sublime:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Átomo:
git config --global core.editor "atom --wait"
Los comandos anteriores suponen que su editor se ha instalado en el directorio predeterminado para una máquina con Windows.
Los comandos básicamente agregan el texto entre comillas dobles .gitconfig
en su directorio de inicio.
En una máquina con Windows, es probable que se encuentre en casa C:\Users\your-user-name
, donde su nombre de usuario es su nombre de usuario.
Desde la línea de comandos, puede llegar a este directorio escribiendo cd ~
.
por ejemplo, un comando anterior sería agregar la siguiente línea debajo de la [core]
sección así:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Si tiene un editor diferente, simplemente reemplácelo con la ruta a su editor, utilizando cualquiera de los métodos anteriores. (y espero que no se necesiten banderas para un uso óptimo).
Para usuarios de emacs
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, donde se -q
saltea los archivos de inicialización.
Para seguir estas instrucciones en Windows, asegúrese de haber instalado Git para Windows . En Windows, me gusta usar Git Bash para que se sienta más como Linux.
Primero, queremos crear un proyecto especial de Sublime Text para poder especificar la configuración especial del proyecto que queremos establecer cada vez que Git llama al editor, para facilitar las cosas al editar en Git. Por ejemplo, normalmente configuro mi regla en 120 caracteres en la mayoría de los proyectos, pero para los mensajes de confirmación de Git quiero que tenga 72 caracteres para que quepa bien en una terminal cuando llames git log
o git lg
.
Abra Sublime Text y vaya al menú "Archivo" → "Nueva ventana" para crear un nuevo proyecto anónimo. Vaya al menú "Proyecto" → "Guardar proyecto como ..." y elija un lugar para guardarlo. En Linux lo guardé en mi directorio de inicio de Linux con el nombre del archivo .gitconfig.sublime-project
. Por tanto, su camino es: ~/.gitconfig.sublime-project
. En Windows también guárdelo en su directorio de inicio, por ejemplo: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Ahora vaya al menú "Proyecto" → "Editar proyecto" para editar la configuración del proyecto. Pegue lo siguiente y guarde la configuración. Realice más ediciones para la configuración de su proyecto si lo desea.
{
// For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html
"folders":
[
],
"settings":
{
// Disables horizontal scrolling if enabled.
// May be set to true, false, or "auto", where it will be disabled for
// source code, and otherwise enabled.
"word_wrap": false,
// Set to a value other than 0 to force wrapping at that column rather than the
// window width
"wrap_width": 0,
// Columns in which to display vertical rulers
"rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
},
"build_systems":
[
]
}
Ahora necesitamos configurar el editor para que lo use Git, editando el .gitconfig
archivo.
Su copia de usuario de esto se ubicará en ~/.gitconfig
. Abra este archivo y agregue las siguientes líneas. ¡Asegúrese de usar el nombre de ruta correcto para el proyecto Git que acaba de crear arriba! Estoy usando ~/.gitconfig.sublime-project
.
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
Esto --wait
es importante, ya que obliga a Git a esperar hasta que cierre el archivo antes de que continúe. La --project
línea es importante para indicarle a Sublime Text qué proyecto desea abrir cada vez que Git abre Sublime Text.
Según la respuesta de @ digitaldreamer anterior ( https://stackoverflow.com/a/2596835/4561887 ), " subl
se puede reemplazar por la ruta completa del ejecutable pero [el alias subl
] generalmente está disponible cuando [Sublime está] instalado correctamente".
Para Windows, primero lea las instrucciones de Linux para obtener información general. Ahora haremos algo casi idéntico.
(OPCIONAL: cree un subl
alias para usar en Git Bash):
Abra un editor de texto (por ejemplo, Bloc de notas, Notepad ++, Sublime Text, Geany , etc.) y cree un archivo llamado ".bash_profile" en su directorio de inicio. Por tanto, su camino será: C:\Users\MY_USER_NAME\.bash_profile
. Guarde lo siguiente en él:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Esto crea un alias de Git Bash llamado subl
que ahora podemos usar en Git Bash para Windows, para abrir fácilmente Sublime Text. Este paso no es obligatorio, pero es útil para el uso general de Git Bash. Ahora puede llamar subl .
, por ejemplo, en Git Bash para abrir un nuevo proyecto de Sublime Text en su directorio actual.
(OBLIGATORIO):
Edite el .gitconfig
archivo que se encuentra en su directorio de inicio: C:\Users\MY_USER_NAME\.gitconfig
agregando lo siguiente. Observe los cambios sutiles de las instrucciones de Linux anteriores:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
NO \
para separar carpetas en el nombre de la ruta! (Gracias VonC por ayudarme a ver esto ).subl
alias que creamos para Git Bash anterior no funciona aquí, por lo que no puede usarlo como lo hicimos en el ejemplo de Linux, sino que debe especificar la ruta completa como se muestra arriba.~
símbolo, sin embargo, aún funciona aquí para conseguir a su directorio de Windows.Esto le brinda resaltado de sintaxis para git commit
mensajes, así como acceso a otros comandos de Git como git blame
(que uso con frecuencia en Sublime Text) o git commit
(que no uso en Sublime Text ya que prefiero la línea de comandos para Git general flujo, como he mencionado en mis comentarios debajo de esta respuesta).
Para instalar un paquete: Primero, asegúrese de que esté instalado el "Control de paquete". Luego, presione Ctrl+ Shift+ P(igual que Herramientas → Paleta de comandos) y escriba todo o parte de “Control de paquete: Instalar paquete”, luego presione Enter. En el cuadro de búsqueda que aparece, busca el paquete "Git" y presiona Entersobre él, o haz clic en él, para instalarlo automáticamente.
Una vez instalado, Ctrl+ Shift+ y Pluego buscar "git" mostrará los comandos de Git que puede usar internamente dentro de Sublime Text ahora, como git blame
.
Ahora, cuando llame git commit
, por ejemplo, como es normal desde la línea de comandos, Sublime Text se abrirá en el .gitconfig.sublime-project
que creamos arriba, con la configuración de ese proyecto. A medida que escribe un párrafo, notará que se extiende más allá de la regla que establecemos, ya que el ajuste suave de palabras está desactivado. Para forzar la envoltura rígida mediante retornos rígidos insertados automáticamente al final de cada línea, coloque el cursor en la línea larga que desea envolver automáticamente y presione Alt+ Q. Ahora se ajustará / plegará a 72 caracteres, que es lo que establecemos en el parámetro "reglas" de la configuración del proyecto anterior.
Ahora, guarde su mensaje de confirmación con Ctrl+ Sy salga (para completar su git commit
) con Ctrl+ Shift+ W.
¡Hecho!
Git Commit
tipo de sintaxis. Puede omitir el paso personalizado "proyecto de texto sublime" ahora.
sublime
con git
y también usa trim_trailing_white_space_on_save
desea agregar un alias para el parche, porque la adición de la eliminación de fuga blancos rompe el espacio ediciones de parche en las que es muy significativo. Esto se puede lograr con algo como esto:git config --global alias.patch "-c core.editor=vim add --patch"
Al igual que todas las demás aplicaciones GUI, debe iniciar mvim con el indicador de espera.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
evitar mensaje de error feo :)
Para usuarios de Windows que desean usar neovim con el Subsistema de Windows para Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Esta no es una solución infalible ya que no maneja rebases interactivos (por ejemplo). Mejoras muy bienvenidas!
Solo inténtalo EDITOR=vim git commit
.
O puede configurar su EDITOR a vim export EDITOR=vim
en su bashrc.
git config --global core.editor "open -n -W -a TextWrangler"
Además, asegúrese de que su configuración "TextWrangler> Preferencias> Aplicación> Cuando TextWrangler se active:" esté establecida en "No hacer nada"
Esto funciona para mí en OS X 10.11.4 con TextWrangler 5.0.2 de la tienda de aplicaciones Mac.
Explicación:
El -n significa abierto en una nueva instancia.
El -W significa esperar hasta que la aplicación salga antes de usar el contenido del archivo editado como mensaje de confirmación.
El -a TextWrangler significa utilizar la aplicación TextWrangler para abrir el archivo.
Vea man open
en su aplicación Mac Terminal para más detalles.
git config --global core.editor "edit -w"
. Esto abrirá el mensaje de confirmación en la instancia actual y tan pronto como cierre solo este documento de mensaje de confirmación, la confirmación continuará.
Al usar git-review
tuve que modificar el sequence.editor
valor para poder hacer rebase interactivo ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
exigir: apt install vim-gtk
Para Mac OS X, usando TextEdit o el editor ambiental natural para texto:
git config --global core.editor "open -W -n"
Solo porque vine aquí buscando una solución única (en mi caso, generalmente uso, vim
pero esta vez quise usar VS Code) para un solo comando y otros pueden querer saber también:
GIT_EDITOR='code -w' git rebase -i …
Aquí está mi git
/ hub
versión solo por contexto:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Para usuarios de IntelliJ
Cuando intentaba git rebase recibía el siguiente error: 'sugerencia: Esperando a que su editor cierre el archivo ... código -n -w: código: error de comando no encontrado: Hubo un problema con el código del editor -n -w '.'
El mismo error apareció cuando estaba tratando de asociar IntelliJ con Git:
El problema era que no tenía el código de comando agregado en mi variable de RUTA de entorno. Y no quería usar Visual Studio Code desde mi terminal. Es por eso que provocó "comando no encontrado". Resolví esto eliminando
editor = código -n -w
desde la sección principal en mi archivo .gitconfig. Git funcionó correctamente de nuevo.
Esto abre el editor de Textmate cuando desea editar sus confirmaciones. Requiere que se instalen las herramientas de línea de comandos de textmate.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Cree un archivo llamado 'k.sh', agregue el siguiente texto y colóquelo en su directorio de inicio (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
En el indicador git, escriba:
git config --global core.editor ~/k.sh