Código de auto-cultivo de los artículos habilidades agrícolas (GIT, vim, expresiones regulares)

1, los conceptos y el uso de Git

1.1Git es un sistema de control de versiones distribuido.

El control de versiones es la gestión de los documentos del proceso de cambio, que es llevar a versiones de control de versiones o de archivo de algunos documentos para gestionar de una manera determinada, el propósito es cuando se necesita usar una versión puede llegar en cualquier momento.

Aquí, el "distribuido" es relativo a la "centralizada" en. Los datos se almacenan de forma centralizada en el nodo servidor, todos los nodos cliente para obtener los datos del sistema de control de versión se denomina sistema de control de versiones centralizado desde el nodo de servicio, tales como svn es un sistema de control de versiones centralizado típico. Por el contrario, más que datos Git almacenada en el servidor, así como la completa guardada en el equipo local, así que llamamos a Git es un sistema de control de versiones distribuido.

Esta característica ha traído una gran comodidad Git, por ejemplo, se puede usar Git en su totalidad fuera de línea, enviar actualizaciones del proyecto en cualquier momento y en cualquier lugar, y usted no tiene que preocuparse demasiado acerca de los puntos de falla, incluso si el tiempo de inactividad del servidor o la pérdida de datos, también se puede utilizar cualquier proyecto de recuperación de datos en un nodo, ya que cada nodo tiene el desarrollo completo de las imágenes de los documentos del proyecto.

Git que puede resolver el problema?

La mayoría de la gente va a ser salvados por la copia de seguridad o archivo de proyecto para lograr el propósito del control de versiones. Este es un enfoque simple, pero demasiado simple. De esta manera, no información de la versión detallada adicional de registro, es difícil hacer frente a proyectos complejos o actualización a largo plazo del proyecto, la falta de convenciones de control de versiones, colaboración impotentes desarrollo.

Git puede resolver la mayoría de los problemas de nuestro control de versiones, usar Git

  • Cada cambio puede presentar la versión actualizada y actualiza el contenido de la nota;
  • Puede cambiar libremente entre las distintas versiones de la historia del proyecto;
  • Puede comparar la diferencia entre las dos versiones es clara;
  • Algunas de las operaciones se pueden deshacer de la modificación actual;
  • Se pueden crear libremente ramas, la fusión de las ramas;
  • Puede colaborar en el desarrollo y la gente;
  • Usted puede tomar una variedad de modelo de desarrollo libre.

Para resumir, Git resuelve muchos problemas de control de versiones, pero el núcleo de la misma es una buena solución para almacenamiento de estado de liberación (es decir, el proceso de cambio de almacenamiento de archivos) problema.

El principio de Git

Experiencia personas tienen versiones del registro, tales como escribir un documento sobre los puntos clave para mantener una copia de seguridad, o cuando se necesita modificar el archivo "Guardar" una vez. Git ha tomado mucho de la misma manera. La diferencia es que el almacenamiento, una vez que una versión se presenta en el sistema de Git, se guarda en la base de datos "Git".

Uso Básico 1.2 Git

 

 

Los anteriores cuatro comandos en el directorio de trabajo, directorio temporal (también llamada índice) y copiar archivos entre almacenes.

  • git add files El archivo actual en el área de ensayo.
  • git commit Para generar un área de preparación instantánea y enviar.
  • git reset -- files Para deshacer la última vez , también se puede utilizar  para deshacer todos los archivos de área de ensayo.git add filesgit reset
  • git checkout -- files Copiar los archivos desde el área de ensayo para el directorio de trabajo, para descartar las modificaciones locales.

 1.3 demostración operacional específica

Crear un repositorio remoto en GitHub

 

 Por git clone https://github.com/outman123/se_test.git tirar de la distancia a la biblioteca local

 

 

 

sincronización 1.3.1 rama

A continuación, entrar en el repositorio local y crear su propia rama, y ​​operar el proyecto en una rama, después de la finalización de la fusión a subir en un maestro remoto, seguro y conveniente.

Aquí está el nuevo archivo test.txt locales, y luego añadir a la caché y se comprometan a la biblioteca

 

 

 Pero por encima de cometer operación se realiza en la rama, repositorio principal de modo remoto no test.txt, debe volver a la rama principal y luego fusionarse, con el fin de modificar su rama sincronizado con el maestro para arriba.

 

 

 

 

 1.3.2 cambios de versión

El archivo test.txt original solamente la siguiente información

 

Ahora añade información al archivo, y luego presentado al repositorio local

 

 

 

 git log puede ser visto por el número de versión de cada operación que presenten información, y entonces podemos hacer cambios de acuerdo con el número de versión, por ejemplo, usamos git restablecer CABEZA --hard ^ puede volver a una versión anterior o llegar a una formulación de acuerdo con el número de versión versiones.

 

 

 

 

 

 

2, el concepto y el uso de Vim

2.1 Introducción

Vim (Vi [mejorada]) Editor es una potente herramienta de edición de archivo de texto multiplataforma, heredado de los sistemas Unix editor vi que soporta Linux / Mac OS X sistemas Windows /, lo que le permite crear, modificar archivos de texto. Vim en el editor, el siguiente comando se puede introducir en el terminal: vim [nombre de archivo]

¿Qué filenamees la ruta del archivo al editor. Si no existe el archivo, se creará un nuevo archivo para usted. editor Vim tiene tres modos de funcionamiento, llamado modo de edición , el modo de inserción y un modo de comando , cuando se ejecuta Vim, entra por primera vez el modo de edición.

2.2 modo de edición

El objetivo principal es Vim editando el documento editado para mover la posición del cursor. Una vez que el cursor se mueve a la posición deseada, se puede cortar y pegar un bloque de texto, suprimiendo el texto e insertar nuevo texto. Tras la finalización de todo el trabajo de edición, los resultados tienen que salvar el editor, salga del editor de vuelta a la terminal, puede emitir ZZ el, pulse dos veces en mayúsculas comando Z clave.
móvil:
*         当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
#         当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
(/) 移动到 前/后 句 的开始; {/} 跳转到 当前/下一个 段落 的开始。 g_ 到本行最后一个不是 blank 字符的位置。 fa 到下一个为 a 的字符处,你也可以fs到下一个为s的字符。 t, 到逗号前的第一个字符。逗号可以变成其它字符。 3fa 在当前行查找第三个出现的 a。 F/T 和 f 和 t 一样,只不过是相反方向; gg 将光标定位到文件第一行起始位置; G 将光标定位到文件最后一行起始位置; NG或Ngg 将光标定位到第 N 行的起始位置
替换和删除:
rc               用 c 替换光标所指向的当前字符;
nrc             用 c 替换光标所指向的前 n 个字符;
x                 删除光标所指向的当前字符;
nx               删除光标所指向的前 n 个字符;
dw               删除光标右侧的字;
ndw             删除光标右侧的 n 个字;
db               删除光标左侧的字;
ndb             删除光标左侧的 n 个字;
dd               删除光标所在行,并去除空隙;
ndd             删除(剪切) n 行内容,并去除空隙;

 Copiar y pegar:

yy              复制当前行到内存缓冲区;
nyy             复制 n 行内容到内存缓冲区;
5yy             复制 5 行内容到内存缓冲区;
“+y          复制 1 行到操作系统的粘贴板;
“+nyy          复制 n 行到操作系统的粘贴板。
 

2.3 Modo de inserción

Después de la colocación correcta del cursor en el modo de edición, el siguiente comando se puede utilizar para insertar el cambio de modo:

i           在光标左侧插入正文
a            在光标右侧插入正文
o            在光标所在行的下一行增添新行
O           在光标所在行的上一行增添新行
I            在光标所在行的开头插入
A           在光标所在行的末尾插入

El método sale del modo de inserción, pulse la  ESC tecla o combinación de teclas  Ctrl+[ , después de salir del modo de inserción, el modo de edición entrará 

 

2.4 Modo de comando

En el modo comando de Vim, puede utilizar los comandos complicados. Tipo en modo de edición : , el cursor salta a la última línea de la pantalla y muestra dos puntos de allí, esta vez en el modo de comando. El modo de comando, también conocido como el modo de comandos , la entrada del usuario se muestran en la última línea de la pantalla, pulse la tecla Intro, Vim ejecutar el comando.
Vim abre un archivo se ha iniciado en la necesidad  :e 
de salvar la actual necesidad archivo editado  :w  para guardar y salir: WQ
Cada línea de edición de texto tiene su propio número de línea, con el siguiente comando para mover el cursor a una fila especificada: n
Cuando se especifica una cadena de búsqueda para Vim, puede contener caracteres que tienen un significado especial. Cadena de búsqueda que contiene estos caracteres especiales llamados expresión regular (expresiones regulares):
^               放在字符串前面,匹配行首的字;
$               放在字符串后面,匹配行尾的字;
\<             匹配一个字的字头;
\>             匹配一个字的字尾;
.               匹配任何单个正文字符;
[str] 匹配 str 中的任何单个字符; [^str] 匹配任何不在 str 中的单个字符; [a-b] 匹配 a 到 b 之间的任一字符; * 匹配前一个字符的 0 次或多次出现; \ 转义后面的字符。
Eliminar texto:
:d                            删除光标所在行
:3d                          删除 3 行
:.,$d 删除当前行至正文的末尾 :/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行 :g/^\(.*\)$\n\1$/d 删除连续相同的行,保留最后一行 :g/\%(^\1$\n\)\@<=\(.*\)$/d 删除连续相同的行,保留最开始一行 :g/^\s*$\n\s*$/d 删除连续多个空行,只保留一行空行 :5,20s/^#//g 删除5到20行开头的 # 注释
Reemplazar texto:
:%s/str1/str2/      用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1 :.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1 :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1 :g/str1/s//str2/g 功能同上 :m,ns/str1/str2/g 将从m行到n行的str1替换成str2

1. Entrada el comando utilizando el% s / xxx / yyy / g

 

 

 

 

2.5,9s / ^ / # / g comentarios del archivo de código en la línea actual de 5-9, # Añadir comentarios, en términos reales para el texto de reemplazo.

 

 

 

 

 

 3 veces usando una copia macro automatizado y pegar, en la entrada de modo normal q [az], bajo la entrada [az] macroinstrucción últimos n veces el modo normal [az] @ entrada n [az] macroinstrucción

3, el uso de expresiones regulares

 

\ El siguiente carácter está marcado como un carácter especial o un carácter literal, o una referencia hacia atrás, o un escape octal. Por ejemplo, " n" coincide con el carácter n"". " \n" Encaja en una nueva línea. De serie \\"" juego " \" y " \(" el partido (""
^ Coincide con el comienzo de la cadena. Si el objeto se establece la propiedad Multiline RegExp, ^ también partidos " \n" o " \rposición" posterior.
PS Coincide con el extremo de entrada de la cadena. Si la propiedad Multiline del objeto RegExp se establece, también coincide $ " \n" o " \rposición de antes."
* Coincide con el cero subexpresión precedente o más veces. Por ejemplo, una zo partidos * " z" y zoo"". * Es equivalente a {0}.
+ Coincide con la subexpresión precedente o más veces. Por ejemplo, " zo+" puede coincidir " zo" y zoo"", pero no pueden igualar z"" + Es equivalente a {1}.
? Coincide con la subexpresión precedente cero o uno. Por ejemplo, " do(es)?" coincidencias " does" o " does" en do"". ? Es equivalente a {0,1}.
{norte} n es un entero no negativo. Coincidencia de los tiempos n determinados. Por ejemplo, " o{2}" no coincide con el " Bob" en o"", pero puede coincidir con el " food" en las dos juntas.
{norte,} n es un entero no negativo. Coincidencia de al menos n veces. Por ejemplo, " o{2,}" no coincide con el " Bob" en o"", pero puede comparar " fooooodtodo o" en. " o{1,}" Es equivalente a o+"". " o{0,}" Es equivalente a o*"".
{Nuevo Méjico} m y n son números enteros no negativos, en los que n <= m. Al menos n veces y la altura de m veces. Por ejemplo, " o{1,3}" coincidirá con " fooooood" en los primeros tres o. " o{0,1}" Es equivalente a o?"". Tenga en cuenta que no hay espacios entre la coma y los dos números.
? Cuando el carácter inmediatamente a cualquier otro calificador (*, +,?, { N}, {n,}, {n, m}) cuando el patrón coincidente trasera, no expansivo. partidos no codiciosos patrón lo menos posible la cadena de búsqueda, y las coincidencias de patrones codiciosos por defecto como gran parte de la cadena de búsqueda. Por ejemplo, la cadena oooo"", " o+?" coincidirá con una sola o"" y " o+" coincide con todo el o""
. Además de coincidencia " \ncon cualquier carácter que no sea" en. Para hacer coincidir incluyendo " \n" cualquier carácter, incluyendo su uso como " (.|\n)" del modelo.
(modelo) Coincida con el patrón y obtener la tonalidad. El juego se puede obtener de los Partidos se han utilizado en subcoincidencias recogida de VBScript, JScript se utiliza en los $ 0 ... $ 9 propiedades. Para que coincida con los paréntesis caracteres, utilice " \(" o \)"".
(?:modelo) Pero no a los resultados de adquirir la coincidencia de patrones coincidentes, que este es un partido de no acceso, no se almacena para su uso posterior. Este "uso o el carácter (|)" a una combinación de las diversas partes del modelo es útil. Por ejemplo, " industr(?:y|ies)" es más que un ' industry|industries' más expresiones breves.
(? = Patrón) Adelante definitivamente a la investigación previa, coincidente con la cadena de búsqueda en el principio de la cadena ninguna coincidencia de patrones. Este es un partido de no acceso, es decir, el partido no necesita obtener para su uso posterior. Por ejemplo, " Windows(?=95|98|NT|2000)" coincidencias " Windows2000" en Windows"", pero no " Windows3.1" el Windows"" Pre-registro no consume caracteres, que es, después se produce una coincidencia, el último partido después de que el siguiente partido para iniciar la búsqueda de inmediato, en lugar de a partir de los caracteres que contiene previa a la investigación.
(?!modelo) negativa hacia delante previa a la investigación, coincidente con la cadena de búsqueda en el comienzo de cualquier cadena perfil de compatibilidad. Este es un partido de no acceso, es decir, el partido no necesita obtener para su uso posterior. Por ejemplo " Windows(?!95|98|NT|2000)" coincidencias " Windows3.1" en Windows"", pero no " Windows2000" los Windows"" Pre-registro no consume caracteres, es decir, después de que ocurra un partido, después del último partido comenzó de inmediato búsqueda siguiente partido, en lugar de a partir de los caracteres que contiene previa a la investigación
(? <= Patrón) Reverse duda la validez de la investigación, y ciertamente Cuasi previa a la investigación hacia adelante, pero en la dirección opuesta. Por ejemplo, " (?<=95|98|NT|2000)Windows" coincidencias " 2000Windows" en Windows"", pero no " 3.1Windows" el Windows""
(? <! Patrón) Invertir pre-check negativo, con una Quasi previa a la investigación negativa hacia delante, pero en la dirección opuesta. Por ejemplo " (?<!95|98|NT|2000)Windows" coincidencias " 3.1Windows" en Windows"", pero no " 2000Windows" los Windows""
x|y Partido x o y. Por ejemplo, " z|food" coincidencias " z" o food"". " (z|f)ood" El partido " zood" o food"".
[Xyz] Conjunto de caracteres. Coincide con cualquier carácter incluido. Por ejemplo, " [abc]" coincidencias " plain" en a""
[^ Xyz] juegos de caracteres negativos. Coincide con cualquier carácter no incluido. Por ejemplo, " [^abc]" coincidencias " plain" en p""
[Arizona] Rango de caracteres. Coincide con cualquier carácter dentro del rango especificado. Por ejemplo, " [a-z]" coincidencias " a" a " z" todos los caracteres en minúsculas en la gama.
[^ Az] gama carácter negativo. Coincide con cualquier carácter no en cualquier rango especificado. Por ejemplo, " [^a-z]" puede no coincidir con cualquier " a" a " z" Cualquier rango.
\si Coincide con un límite de palabra, es decir, se refiere a la ubicación y los espacios entre las palabras. Por ejemplo, " er\b" coincidencias " never" en er"", pero no " verb" el er""
\SI 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[^0-9]。
\f 匹配一个换页符。等价于\x0c和\cL。
\n 匹配一个换行符。等价于\x0a和\cJ。
\r 匹配一个回车符。等价于\x0d和\cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于\x09和\cI。
\v 匹配一个垂直制表符。等价于\x0b和\cK。
\w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
\xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。.
\num 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
\nml 如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。

详细可见:https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

 

 

 /^[a-zA-Z][a-zA-Z]+[0-9]*

 

Supongo que te gusta

Origin www.cnblogs.com/outman123/p/12493186.html
Recomendado
Clasificación