com enganxar al Vim sense que es re-formati

Segur que els que utilitzeu el Vim ja n’heu buscar la solució ja que realment és molt molest.

Si aneu a una pàgina web i en copieu el codi font d’un tros de programa, per exemple:

Us trobareu que un cop enganxat al terminal queda tot el codi reformatat:

Per sort amb el Vim li pots dir que no reformati el codi:

El truc està en que abans d’enganxar al terminal ens posem en mode control i establim l’opció paste) o sigui, la seqüència és:

  • (obres el fitxer)
  • Passes a mode ordre (amb la tecla Esc)
  • escrius :set paste
  • tornes a mode edició (amb la tecla i)
  • ja pots fer un Ctrl+Maj+V per enganxar el que tinguis al porta-retalls

Llestos ja tenim un bon tros de codi que no hem de picar i que a més continua ben formatat :)


consell vim del dia: filetype

logotip del vimQuan obriu amb el vim un fitxer que té una extensió no comuna però que al cap i a la fi és un xml, csv, html o d’altres us trobeu que no us ressalta el text com si fós un xml, csv, etc.

Per dir-li que ressalti la sintaxi del fitxer com si fós un fitxer xml només cal que teclegeu l’ordre:

:set filetype=xml

I ja tindreu el fitxer ressaltat en l’estil que vulgueu :)

desplaçar-se pel vim

logotip del vim(Tot en mode control)

  • Anar al principi del fitxer: gg
  • Anar al final del fitxer: G
  • Anar a una línia en concret: :54 (o 54G)
  • Anar a la pàgina següent: Ctrl+F (molt útil si el teclat no té les tecles de avançar/retrocedir pàgina)
  • Anar a la pàgina anterior: Ctrl+B
  • Anar al principi de línia: | (la barra vertical de l’1)
  • Anar a una columna en concret: 54| (de nou la barra vertical de l’1)
  • Anar al final de la línia: 999| (o un número més gran si la línia és molt llarga :D
  • Anar a la paraula següent: w
  • Anar a la paraula anterior: b

Fonts:

Documentació del Vim

Vim tips de pixelbeat.org

Millorar el ressaltat de la sintaxi del Python al Vim

logotip del vimTot i que el Vim ja incorpora de forma predeterminada el ressaltat de sintaxi de Python avui he descobert que hi ha una extensió que permet millorar-ne encara més el ressaltat.

Només cal baixar el fitxer per a la versió de Python que utilitzeu (jo he baixat la versió 2.6 i la 3.0 ja que es poden instal·lar en paral·lel) i copiar-los a ~/.vim/syntax.

Obriu un fitxer de Python amb el vim i ja veureu :D

A més si us mireu els fitxers que us acabeu de baixar hi trobareu unes quantes opcions més de personalització (que ressalti el format del print, que mostri els espais i tabulacions que sobren …), totes aquestes personalitzacions les podeu afegir al ~/.vimrc.

cercar i reemplaçar dintre un rang de línies

logotip del vimEl Vim et permet entre moltes altres coses fer cerques i reemplaçaments:

:s/cerca/reemplaç/g

Si volem fer el canvi a tot el fitxer només hem d’afegir un % al principi:

:%s/cerca/reemplaç/g

Però si el que volem és fer-ho dintre un rang de línies només cal que les especifiquem:

:8,19s/cerca/reemplaç/g

Ja feia dies que l’havia trobat i utilitzat, però avui l’he tornat a necessitar i ja no me’n recordava, de manera que a veure si escrivint-ne una entrada al bloc se’m queda més :)

copiar, enganxar i suprimir

logotip del vimPer fer aquestes operacions amb el Vim tenim les ordres y, p i d de manera que si fem yy, pp o dd estem copiant/enganxant/suprimint una línia.

Però a més si fem [ypd]w el que estem fent és copiar/enganxar/suprimir una paraula! :D

Són aquelles petites coses de la vida que a vegades et solucionen molta feina :)

suprimir totes les línies que coincideixen amb un patró

logotip del vimtot editant fitxers turcs[1] tenia la necessitat de suprimir totes les línies que comencessin per msgstr[1] així que he anat a buscar per Internet i al final he trobat que amb el vim pots fer:

:%g/^msgstr\[1/d

i amb això suprimiràs en tot el fitxer totes les línies que comencin per msgstr[1

[1] : l’altre dia actualitzant la meva còpia del que tinc a un dels servidors vaig veure que hi havia alguns mòduls que amb turc no passaven la comprovació msgfmt -cv així que li vaig demanar a en Baris si li feia res que ho arreglés i com que m’ha dit que sí és el que estic fent ara mateix :)

el gtranslator ja és útil!

logotip del gtranslatorara mateix estic fent la traducció del manual de la miniaplicació de l’indicador de teclat i com que he trobat una cadena de la interfície que era errònia m’he baixat el codi font del gnome-applets per a poder mirar la cadena i arreglar-la (que també m’ha costat lo seu trobar-la)

com que he vist que li quedaven poques cadenes m’he decidit a acabar-lo, així ja faltarà menys per estar al 100% de cara a d’aquí 2 mesos i 1 dia que sortirà el GNOME 2.22 però m’he trobat amb un problema i es que estava editant amb el vim el fitxer de traducció hi he vist que hi havia els caràcters dels símbols de temperatura per a graus celsius i farenheit i com que no ser com copiar i enganxar (des de teclat) amb el vim ho he deixat en primera instància però després m’he recordat que hi ha uns gallecs (diria) que estan tornat a treballar amb el gtranslator

una de les novetats que hi ha ara mateix a la branca GOBJECT_WORK és una paleta de caràcters:

gtranslator en funcionament

els observadors també hauran vist que hi ha una pestanya a sota de la llista de cadenes que posa «alternate language» que serveix per tenir un alter fitxer po obert, en principi el mateix que s’està traduint però en un altre idioma, o per exemple, una memòria de traducció (com la de Softcatalà)

encara no n’han fet cap llançament però una de les altres novetats importants (i que en principi ja hi ha a la branca GOBJECT_WORK tot i que no l’he sabut veure com s’activa) és la possibilitat de fer consultes a open-tran.eu, un lloc web on es poden consultar traduccions de diferents projectes de programari lliure (de moment GNOME, Mozilla, KDE, Debian i Cor Jousma)

també s’està treballant en un connector a l’estil al que acabo de comentar per al damned-lies (el programari que hi ha darrere l10n.gnome.org) la qual cosa permetrà fer consultes només a cadenes del GNOME

el títol de l’entrada tot i així no és per res del que acabo de comentar, sinó que com que un dels motius pels que quan tradueixo ho faig amb el Gedit o el vim és que tant el gtranslator o el poedit sempre s’entesten a modificar les referències al codi font de manera que quan acabes de traduir un programa i li fas un diff amb la versió anterior per enviar-la a les llistes de Softcatalà et trobes que el diff no serveix per res precisament perquè hi ha tants canvis que no es poden arribar a veure a simple vista els canvis que hagis pogut fer

però almenys amb les quatre cadenes que hi he canviat aquesta vegada ho he comprovat i no ha canviat res de res :)

connector del vim per a editar fitxers po

logotip del vimtot i que normalment faig servir el Gedit per a editar els fitxers de traducció del GNOME, quan haig de fer petites modificacions o acabo de baixar-me una còpia local per a després aplicar-hi els canvis que s’envien a la llista del GNOME de Softcatalà ho faig directament amb el vim

i tot i que m’ho suposava que hi hauria d’haver algun script per a facilitar l’edició de fitxers de traducció fins avui no l’havia trobat (tampoc és que el busqués), així que ara només falta acostumar-me a la colla de dreceres de teclat de la guia del script

he de dir que encara no l’he provat i com que ara mateix tinc classe el provaré quan torni :)