2010-02-07 19 views
24

Tengo enlaces vi trabajando en mi shell bash usando set -o vi en mi .bash_profile. Pero parece que no puedo hacer que funcionen en el cliente de línea de comandos mysql. Solo obtengo enlaces de estilo de emacs. ¿Cómo haces esto?¿Cómo hacer que las combinaciones de teclas vi funcionen en el cliente de mysql?

También puse estas líneas en mi .inputrc, pero sin ningún efecto a:

set editing-mode vi 
set keymap vi 
+2

¡Abrace el lado oscuro, aprenda a usar las teclas de emacs! * bwahahaha! * En serio, me gustaría poder ayudarte, aunque soy un aficionado de emacs. – Omnifarious

+2

mysql no usa readline. Un disco duro en el ejecutable revela esto. – Omnifarious

+3

Obtuve mysql vi-keybindings trabajando de alguna manera en mi otra computadora, así que sé que esto es posible. VI por siempre – dan

Respuesta

33

rápida de Google revela this ... no sé si ayuda.

copiado aquí por conveniencia:

añada lo siguiente en OS X 10.5:

$ cat .editrc 
bind -v 

Esto funcionará para X 10.4 y otros sistemas operativos OS:

$ cat .inputrc 
set editing-mode vi 
+0

Gracias. ¡Crear un .editrc funcionó! – dan

+3

para mí en ubuntu, estaba creando .inputrc, ¡lo cual funcionó! ¡Gracias! –

+0

fedora 18 .editrc funcionó, .inputrc no lo hizo – necromancer

1

Esto no responde directamente a su pregunta, pero es posible que desee échele un vistazo al the dbext plugin.

Este complemento contiene funciones/mapeos/comandos para permitir a Vim acceder a varias bases de datos.

[...]

dbext proporciona una interfaz común entre el editor y una base de datos. Si su empresa/proyecto se mueve a una nueva plataforma de base de datos, no hay necesidad de aprender las nuevas herramientas de bases de datos. Mientras edita su SQL (y sin abandonar Vim) puede ejecutar comandos de base de datos, ejecutar consultas, mostrar resultados y ver objetos de la base de datos. dbext comprende varios lenguajes de programación, y puede analizar e indicar al usuario las variables [host] y ejecutar la declaración resultante. Vea abajo para más detalles.

Un cliente de base de datos dentro Vim!

0

La respuesta correcta es correcta, pero si tiene problemas como me sucedió (actualmente estoy usando Slackware 14.x), editando /etc/inputrc debería ser su última esperanza.

He probado tanto .inputrc como .editrc en mi casa, pero en mi sistema solo funcionaba la edición/etc/inputrc.

17

Estos dos archivos funcionaron en mi estación de trabajo anterior (no estoy seguro de la versión de MySQL (mi trabajo anterior)). Mantengo mis archivos dot en git.

.editrc bind -v bind \\t rl_complete

.inputrc (varios de ellos puede o no-ser necesarios) set editing-mode vi set keymap vi set meta-flag on set input-meta on set convert-meta off set output-meta on set bell-style none

la publicación de estos, porque no podía publicarlos en mi comentario anterior.

+5

¡El 'bind \\ t rl_complete' trajo la terminación de la pestaña! Algo que perdí con las otras soluciones. –

+0

¡aleluya! Estaba realmente atascado sin completar la pestaña. ¿De qué sirve el modo vi si tengo que escribir nombres largos de tabla y columna? Muchas gracias por esta respuesta completa. – necromancer

+0

¡Se necesitaba completar esa pestaña, esta respuesta salva el día! ¡¡¡Gracias!!! –

0

Además, esto no responde a su pregunta.

También puede usar Vimsql como dbext.Vimsql es la manera más conveniente de interactuar con mysql que mysql si te gusta el mapa de teclas vim.

Cuestiones relacionadas