La chuleta definitiva para usuarios de Vim en Linux

Desde la década de 1970, Vi y Vim son populares entre los desarrolladores y están presentes en la mayoría de los servidores basados en UNIX. Esos editores de texto libre y de código abierto puede ser un poco difícil de usar al principio, pero son extremadamente poderosos. Aquí está una lista de más de 130 comandos para impulsar el potencial de su codificación con Vi / Vim.

BASICS

:e filenameOpen filename for edition
:wSave file
:qExit Vim
:q!Quit without saving
:xWrite file (if changes has been made) and exit
:sav filenameSaves file as filename
.Repeats the last change made in normal mode
5.Repeats 5 times the last change made in normal mode

MOVING IN THE FILE

k or Up Arrowmove the cursor up one line
j or Down Arrowmove the cursor down one line
emove the cursor to the end of the word
bmove the cursor to the begining of the word
0move the cursor to the begining of the line
Gmove the cursor to the end of the file
ggmove the cursor to the begining of the file
Lmove the cursor to the bottom of the screen
:59move cursor to line 59. Replace 59 by the desired line number.
20|move cursor to column 20.
%Move cursor to matching parenthesis
[[Jump to function start
[{Jump to block start

CUT, COPY & PASTE

yCopy the selected text to clipboard
pPaste clipboard contents
ddCut current line
ywYank word
yyCopy current line
y$Copy to end of line
DCut to end of line

SEARCH

/wordSearch word from top to bottom
?wordSearch word from bottom to top
*Search the word under cursor
/\cstringSearch STRING or string, case insensitive
/jo[ha]nSearch john or joan
/\< theSearch the, theatre or then
/the\>Search the or breathe
/\< the\>Search the
/\< ¦.\>Search all words of 4 letters
/\/Search fred but not alfred or frederick
/fred\|joeSearch fred or joe
/\<\d\d\d\d\>Search exactly 4 digits
/^\n\{3}Find 3 empty lines
:bufdo /searchstr/Search in all open files
bufdo %s/something/somethingelse/gSearch something in all the open buffers and replace it with somethingelse

REPLACE

:%s/old/new/gReplace all occurences of old by new in file
:%s/onward/forward/giReplace onward by forward, case unsensitive
:%s/old/new/gcReplace all occurences with confirmation
:2,35s/old/new/gReplace all occurences between lines 2 and 35
:5,$s/old/new/gReplace all occurences from line 5 to EOF
:%s/^/hello/gReplace the begining of each line by hello
:%s/$/Harry/gReplace the end of each line by Harry
:%s/onward/forward/giReplace onward by forward, case unsensitive
:%s/ *$//gDelete all white spaces
:g/string/dDelete all lines containing string
:v/string/dDelete all lines containing which didn’t contain string
:s/Bill/Steve/Replace the first occurence of Bill by Steve in current line
:s/Bill/Steve/gReplace Bill by Steve in current line
:%s/Bill/Steve/gReplace Bill by Steve in all the file
:%s/^M//gDelete DOS carriage returns (^M)
:%s/\r/\r/gTransform DOS carriage returns in returns
:%s#<[^>]\+>##gDelete HTML tags but keeps text
:%s/^\(.*\)\n\1$/\1/Delete lines which appears twice
Ctrl+aIncrement number under the cursor
Ctrl+xDecrement number under cursor
ggVGg?Change text to Rot13

CASE

VuLowercase line
VUUppercase line
g~~Invert case
vEUSwitch word to uppercase
vE~Modify word case
ggguGSet all text to lowercase
gggUGSet all text to uppercase
:set ignorecaseIgnore case in searches
:set smartcaseIgnore case in searches excepted if an uppercase letter is used
:%s/\<./\u&/gSets first letter of each word to uppercase
:%s/\<./\l&/gSets first letter of each word to lowercase
:%s/.*/\u&Sets first letter of each line to uppercase
:%s/.*/\l&Sets first letter of each line to lowercase

READ/WRITE FILES

:1,10 w outfileSaves lines 1 to 10 in outfile
:1,10 w >> outfileAppends lines 1 to 10 to outfile
:r infileInsert the content of infile
:23r infileInsert the content of infile under line 23

FILE EXPLORER

:e .Open integrated file explorer
:SexSplit window and open integrated file explorer
:Sex!Same as :Sex but split window vertically
:browse eGraphical file explorer
:lsList buffers
:cd ..Move to parent directory
:argsList files
:args *.phpOpen file list
:grep expression *.phpReturns a list of .php files contening expression
gfOpen file name under cursor

INTERACT WITH UNIX

:!pwdExecute the pwd unix command, then returns to Vi
!!pwdExecute the pwd unix command and insert output in file
:shTemporary returns to Unix
$exitRetourns to Vi

ALIGNMENT

:%!fmtAlign all lines
!}fmtAlign all lines at the current position
5!!fmtAlign the next 5 lines

TABS/WINDOWS

:tabnewCreates a new tab
gtShow next tab
:tabfirstShow first tab
:tablastShow last tab
:tabm n(position)Rearrange tabs
:tabdo %s/foo/bar/gExecute a command in all tabs
:tab ballPuts all open files in tabs
:new abc.txtEdit abc.txt in new window

WINDOW SPLITING

:e filenameEdit filename in current window
:split filenameSplit the window and open filename
ctrl-w up arrowPuts cursor in top window
ctrl-w ctrl-wPuts cursor in next window
ctrl-w_Maximize current window vertically
ctrl-w|Maximize current window horizontally
ctrl-w=Gives the same size to all windows
10 ctrl-w+Add 10 lines to current window
:vsplit fileSplit window vertically
:sview fileSame as :split in readonly mode
:hideClose current window
:­nlyClose all windows, excepted current
:b 2Open #2 in this window

AUTO-COMPLETION

Ctrl+n Ctrl+p (in insert mode)Complete word
Ctrl+x Ctrl+lComplete line
:set dictionary=dictDefine dict as a dictionnary
Ctrl+x Ctrl+kComplete with dictionnary

MARKS

m {a-z}Marks current position as {a-z}
‘ {a-z}Move to position {a-z}
Move to previous position

ABBREVIATIONS

:ab mail mail@provider.orgDefine mail as abbreviation of mail@provider.org

TEXT INDENT

:set autoindentTurn on auto-indent
:set smartindentTurn on intelligent auto-indent
:set shiftwidth=4Defines 4 spaces as indent size
ctrl-t, ctrl-dIndent/un-indent in insert mode
>>Indent
<<Un-indent
=%Indent the code between parenthesis
1GVG=Indent the whole file

SYNTAX HIGHLIGHTING

:syntax onTurn on syntax highlighting
:syntax offTurn off syntax highlighting
:set syntax=perlForce syntax highlighting

Fuente: CATS WHO CODE

La tecnología para la diversión

Juegos Online

La tecnología se ha convertido en uno de los rasgos más definitorios del mundo contemporáneo. Desde su surgimiento, el ser humano ha sido testigo de una aceleración sin precedentes del desarrollo en numerosas esferas. Si bien es cierto que desde el punto de vista laboral muchas tareas se han visto facilitadas y perfeccionadas, lo cual ha estado favorecido, por ejemplo, por un aumento de la capacidad productiva y un mejoramiento de la gestión empresarial, no solo en este ámbito se pueden apreciar sus beneficios. La vida del hombre se ha vuelto indudablemente más cómoda, y una nueva era se ha abierto también en el mundo del entretenimiento gracias a una invención maravillosa: los videojuegos. A partir de la década de los setenta, con la popularidad alcanzada por estos, la tecnología dejó de ser vista como meros instrumentos de trabajo o medios de confort para transformarse en un atractivo universo de actividades recreativas.

Desde entonces la industria de los juegos virtuales ha ido perfeccionándose hasta alcanzar la elevada capacidad de los sistemas de DVD y Blu-Ray que existen actualmente. Sin embargo, debido a los altos costos de estas tecnologías, son los juegos online los que han alcanzado una mayor popularidad. Y no es esta su única ventaja; entre otras, podemos contar su amplia cobertura en la población dada por su facilidad de acceso, su gran disponibilidad y la posibilidad de adquirir frecuentes actualizaciones.

Aunque el origen de los juegos en red se remonta a 1979, y durante los ochenta se desarrollaron paulatinamente entre los usuarios de la entonces poco popular internet, los cuales formaron los primeros grupos virtuales, no fue hasta 1993, con la creación de la World Wide Web, que comenzaron a expandirse hasta alcanzar los actuales niveles de popularización. Juegos para todos los gustos, con espectaculares gráficos de un realismo que una generación atrás se hubiera creído imposible, se abren a la consideración de un ejército de usuarios deseosos de encontrar la más encantadora manera de disfrutar de su tiempo libre. La proliferación de las redes sociales, además, ha añadido otra ventaja: no se trata de un disfrute en solitario sino de una manera genuina de relacionarse y de compartir con nuestros amigos nuestros gustos y nuestro tiempo.

La posibilidad de realizar nuestros deseos en el mundo virtual está al alcance de todos. Todas las preferencias tienen su espacio en las redes: desde los juegos para niños hasta los que recrean las más complejas situaciones y fantasías de los adultos. Entre estos sobresalen los juegos de casinos, tan alucinantes como en la vida real aunque sin sus riesgos. Pero qué maravilloso sería si los logros virtuales tuvieran algo de realidad. La más amplia gama de juegos de casinos del mercado, en todas sus variedades, la podemos encontrar, en algunos sitios, como por ejemplo casino.com; este tiene un servicio de mucha calidad, que incluye una atención personalizada al cliente, entre otros servicios que no son muy comunes en estos días. La necesidad de enriquecer con recompensas al usuario debe tenerse en cuenta por estas empresas, hasta el punto de que estos puedan recibir dinero en efectivo por todo lo ganado en el juego. La confidencialidad de este debe estar también protegida, para garantizar su tranquilidad. Casino.com ofrece una amplia gama de juegos distintos como la ruleta online en los que realmente se puede ganar dinero.

Una vez hecha su elección ¡solo resta jugar y ganar!

Amazon muestra su portada con un aspecto antiguo de 1999

Amazon retro

La broma de Amazon este miércoles 1ro de abril de 2015 fue un viaje al pasado. La compañía mostraba el sitio web Amazon.com con un diseño de alrededor de 1999.

En el siguiente enlace de Wayback Machine de Internet Archive se puede ver como se veía esta web en el año antes mencionado. Con un ambiente desordenado e interfaz con aspecto antiguo nos recuerda cuan novato y simple era el comercio electrónico de esta compañía cuando se lanzó por primera vez en 1994.

El hecho se debe al Día de las bromas de abril (April Fools’ Day, como se le conoce en Estados Unidos), la cual es una fiesta dedicada a las bromas, al igual que el día de los Santos Inocentes.

La broma no hace más que reunir un poco de nostalgia, que muestra hasta qué punto han cambiado los mercados de comercio electrónico, ahora multimillonarios.

Firefox 35 estrena botón para compartir contenidos en Redes Sociales

Compartir en Delicious desde Firefox

Por defecto está vacío, por lo que hay que añadir lo que se quiera de entre los servicios disponibles… si se quiere; si no, abandonas el botón en la caja de herramientas y listo.

Por el momento soporta Facebook, Twitter, Google+, Gmail, LinkedIn, Tumblr, Delicious, Pocket y unos cuantos más, algunos para compartir en redes sociales, otros con funciones que atañen a la barra lateral -por ejemplo, para mostrar los marcadores de Delicious-, los marcadores -Pocket, aunque ésta se instala como extensión independiente- y las notificaciones, de las que todavía no hay ejemplo. En cuanto a la barra lateral, unas versiones atrás Firefox incluyó un botón para tales menesteres.

Mejora tu experiencia Firefox, consigue más de la Red

Fácil de usar, no hay que descargar ni instalar software ni complementos, sólo tienes que pulsar Activar y obtendrás nueva funcionalidad directamente desde la Red. Cualquier cosa desde servicios de medios sociales a marcadores en la nube, música y noticias personalizadas, añadir estos servicios a Firefox te permite obtener más de la Red.

Vía | MuyLinux

Configuración del botón “YouTube Subscribe” para suscribirse al canal de Youtube desde el sitio web

YouTube Subscribe Button

El botón “YouTube Subscribe” permite con un solo click que los usuarios de la página o sitio web se suscriban a su canal de YouTube sin tener que abandonar el sitio.

El botón es del estilo de Google+ y viene en tres diseños, como podéis ver en la imagen superior, variando entre el color rojo y el color verde para los canales de pago.

Configuración de las variantes del botón YouTube Subscribe.

Lo primero es conocer el nombre o el ID del Canal que puede obtenerse en la página: http://www.youtube.com/account_advanced.

Botón predeterminado

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<div class="g-ytsubscribe" data-channel="Nombre-o-ID-del-Canal" data-layout="default"></div>

Diseño completo (incluye avatar)

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<div class="g-ytsubscribe" data-channelid="Nombre-o-ID-del-Canal" data-layout="full"></div>

Diseño completo (tema oscuro)

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<div class="g-ytsubscribe" data-channelid="Nombre-o-ID-del-Canal" data-layout="full" data-theme="dark"></div>

La adición del botón a nuestro sitio está sujeta a algunas condiciones que conviene revisar antes de usarlo. Entre ellas, está la prohibición de ofrecer o promocionar premios o recompensas de cualquier clase a cambio de pinchar en el botón, algo que realmente será un poco difícil de controlar por parte de Google, sobre todo ahora que se da la opción de poder suscribirse desde prácticamente cualquier lugar.

Vía | genbeta y Google Developer