¿Hay un acceso directo para hacer un comentario de bloque en Xcode?


153

Estoy escribiendo código C compatible con ANSI y, por lo tanto, no puedo usar el //comentario line ( ). Estoy usando Xcode. En Sublime Text y Eclipse, y creo que la mayoría de los otros IDE, hay atajos de teclado separados para comentarios de línea y comentarios de bloque ( /**/). Sin embargo, no veo eso en Xcode; de ​​hecho, ni siquiera veo una opción de menú para agregar un comentario de bloque. ¿Simplemente no es compatible con Xcode? Sin duda, esa sería una decisión lamentable si es así.

Respuestas:


232

Prueba command+ /. Esto funciona para mi.

Entonces, solo resalta el bloque de código que deseas comentar y presiona esas dos teclas.


13
@Nizam Simplemente presione Command+ Shift+ 7, es decir , Command+ /, nuevamente.
muenchdo

41

ACTUALIZAR:

Como era flojo y no implementé completamente mi solución, busqué y encontré BlockComment para Xcode , un complemento lanzado recientemente ( junio de 2017 ). No se moleste con mi solución, este complemento funciona muy bien y lo recomiendo encarecidamente.

RESPUESTA ORIGINAL:

Nada de lo anterior funcionó para mí en Xcode 7 y 8 , así que:

  1. Servicio de Automator creado con AppleScript
  2. Asegúrese de que "La salida reemplaza el texto seleccionado" está marcado
  3. Ingrese el siguiente código:

    on run {input, parameters}
    return "/*\n" & (input as string) & "*/"
    end run

ingrese la descripción de la imagen aquí

Ahora puede acceder a ese servicio a través de Xcode - Menú de servicios, o haciendo clic derecho en el bloque de código seleccionado que desea comentar, o dándole un acceso directo en Preferencias del sistema.



23

Ahora hay un complemento Xcode que permite esto: CComment .

La forma más fácil de instalar esto es usar el increíble administrador de complementos Alcatraz para Xcode .

EDITAR Apple lamentablemente (e incorrectamente, en mi humilde opinión) retiró el antiguo modelo de complemento con Xcode 8. El nuevo sistema de complemento es bastante limitado, pero debería permitir el desarrollo de un complemento como este nuevamente. Para cualquier persona interesada en hacer esto, vea la sesión 414 de WWDC 2016 . Además, envíe los radares para API para los complementos que desea escribir o ver.


2
Esto no funciona desde Xcode 6.3 (Versión 6.3.1 (6D1002)) en adelante. Ningún complemento funciona.
Abhishek Bedi

@AbhishekBedi Consulte stackoverflow.com/questions/30361228/… para la solución general de problemas de complementos para las nuevas versiones de Xcode.
fzwo

12

ACTUALIZACIÓN: Actualización de Xcode 8

Ahora con xcode 8 puedes hacer:

+ +/

Nota: El siguiente método no funcionará en la versión xcode => 8

Pasos muy sencillos para agregar la funcionalidad Block Comment a cualquier editor de mac OS X

  1. Automatizador abierto
  2. Elige servicios
  3. Busque Ejecutar Shell Script y haga doble clic en él.

Agregue el applecript a continuación en textarea

awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'

script de manzana para comentario de bloque

  1. Guardar guión como Block Comment

Agregar un atajo de teclado

Abra Preferencia del sistema> Teclado> Accesos directos , agregue un nuevo acceso directo haciendo clic +y a la derecha el mismo nombre, es decir, Block Commentcomo se le dio a AppleScript en el cuarto paso. Agregue su atajo de teclado y haga clic en el botón Agregar .

Nuevo atajo de teclado

Ahora debería poder usar el comentario de bloque en Xcode o cualquier otro editor, seleccionar algún texto, usar la tecla de acceso directo para bloquear el comentario de cualquier línea de código o hacer clic con el botón derecho, el menú contextual y el nombre que le dio a este script debería aparecer cerca El fondo.


@Baig Lo extraño es que cuando lo pruebo en la ventana de salida de Automator 'Run Shell Script', funciona bien. Tal vez, mi combinación de teclas de acceso directo ya se está utilizando, y esto podría estar bloqueándolo. Pero, ¿la funcionalidad del menú contextual tampoco funciona? Esto me está molestando ...
Charles Robertson

7

Modifiqué un poco el código de Nikola Milicevic para que también elimine el bloque de comentarios si el código ya está comentado:

on run {input, parameters}
    repeat with anInput in input
        if "/*" is in anInput then
            set input to replaceText("/*", "", input as string)
            set input to replaceText("*/", "", input as string)

            return input
            exit repeat
        end if
    end repeat
    return "/*" & (input as string) & "*/"
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

Espero que esto ayude a alguien.ingrese la descripción de la imagen aquí


7

En XCode 10, puede usar la opción + comando + barra invertida para escribir un comentario hermoso para su función o clase como a continuación:

ingrese la descripción de la imagen aquí


6

Puede asignar esto usted mismo muy fácilmente, aquí va una explicación paso a paso.

1.) En su archivo xCode .m escriba lo siguiente, no importa dónde escriba siempre y cuando sea un área vacía.

/*
*/

2.) Resalte que dos líneas de código luego arrastre y suelte en el área del 'panel de la biblioteca de fragmentos de código' (está en la parte inferior del panel de Utilidades). Aparecerá un signo más azul claro si lo haces bien.

ingrese la descripción de la imagen aquí

3.) Después de soltar el botón del mouse, aparecerá una nueva ventana que le pedirá que agregue nombre, acceso directo, etc. como se muestra. Como puede ver, agregué mi acceso directo a //. Entonces, cada vez que quiera un comentario de bloque, escribiré //. Espero que esto ayude

ingrese la descripción de la imagen aquí


1

Logré que esto funcionara bien a través de una tarea de automatización y he usado un atajo para vincularlo a la combinación de teclas ctrl + opción + comando + b. todo lo que tengo que hacer es resaltar el código que quiero bloquear comentado en xcode y presionar las teclas anteriores y el texto seleccionado se bloqueará comentado usando / * ... * /.

utilizo el plegado de código bastante, por lo que la razón por la que quería esta funcionalidad era para poder plegar fácilmente un bloque de código comentado ... el código comentó de la manera habitual usando // wont fold.

No estoy familiarizado con el uso de Mac Automator, pero simplemente seguí las instrucciones en el siguiente video de wwdc

En el video WWDC 2012, Sesión 402: Trabajando eficientemente con Xcode (desde aproximadamente 6 minutos) hay una descripción de cómo usar el Mac OSX Automator para agregar un servicio para manipular el texto seleccionado. El ejemplo que se muestra en el video es eliminar duplicados en una selección de texto usando los comandos de shell sort y uniq. Usando este enfoque, haces lo mismo pero ingresas el siguiente comando en lugar de lo que él hace en el video

awk 'BEGIN {print "/ "} {print $ 0} END {print " /"}'

(tenga en cuenta que debe haber 2 asteriscos en la línea anterior que por alguna razón no se muestran ... sí aparecen en la captura de pantalla a continuación, así que cópielo como el comando correcto para ingresar)

deberías terminar ejecutando un script de shell como este

captura de pantalla

esto, para cualquier texto seleccionado, colocará los delimitadores de comentarios antes y después.

cuando lo guarde, debería obtener opciones para nombrarlo (lo llamé blockcomment) y también para asignar un atajo de teclado

entonces debería poder abrir xcode, seleccionar texto, hacer clic con el botón derecho, el menú contextual y el nombre que le dio a este script debería aparecer cerca de la parte inferior

simplemente haga clic en el nombre y el script se ejecutará y bloqueará los comentarios del código seleccionado o use el método abreviado de teclado que asignó.

espero que esto ayude


0

Hay un símbolo antes del menú de ayuda en xcode que tiene Editar guión de usuario. En Un / Selección de comentarios en la sección de comentarios, cambie my $ cCmt = "//"; a mi $ cCmt = "#"; o lo que sea que funcione con su IDE. Luego, al seleccionar las líneas y el comando + / (Es mi valor predeterminado de xcode), puede comentar y descomentar las líneas seleccionadas.


0

@Nikola Milicevic

Aquí está la captura de pantalla del problema de sangría. Esto es muy pequeño, pero es extraño que parezca funcionar tan bien, en su ejemplo visual.

También estoy agregando una captura de pantalla de mi configuración de Automator ...

Gracias

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Actualizar:

Si cambio el script ligeramente a:

ingrese la descripción de la imagen aquí

Y luego selecciono líneas completas en XCode, obtengo el resultado deseado:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


0

Si está buscando una manera de convertir comentarios generados automáticamente de la Add Documentationacción (disponible en cmd- shift- /), también puede resultarle útil:

function run(input, parameters) {
  var lines = input[0].split('\n');
  var line1 = lines[0];
  var prefixRe = /^( *)\/\/\/?(.*)/gm;
  var prefix = prefixRe.test(line1) ? line1.replace(prefixRe, "$1") : ""

  var result = prefix + "/*\n";  
  lines.forEach(function(line) {
    result += prefix + line.replace(prefixRe, "$2") + '\n';
  });
  result += '\n' + prefix + ' */';
  return result;
}

Descansa igual que en la respuesta de @Charles Robertson:

Automator

Servicios


0

En xcode 11.1 swift 5.0

seleccione el código que desea agregar comentario de bloque y luego presione + +/

ingrese la descripción de la imagen aquí


-1

Cmd+ Shift+ 7comentará las líneas seleccionadas.


Probablemente significaba Cmd+ /. Parece que al menos el teclado alemán tiene el /de la 7llave, pero en la disposición de los EEUU /está en su propia clave y sin cambio.
Jake Cobb

También tengo /la 7tecla sobre la distribución del teclado noruego, pero aún no funciona ... este acceso directo simplemente abre el menú Ayuda
Sti


-11

Parece que ya mucha gente responde a esta pregunta.

en Swift 3.0, el comentario de una sola línea es poner barras diagonales dobles por adelantado: "//"; multilínea se pone "/ * .... * /".

Espero que esto ayude.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.