In my sass code, I have inline comments and I wish to remove these in sublime text. Is it possible to permanently delete all comment content alone?
@function emCalc($values) {
$emValues: '';
$max: length($values); //Get the total number of parameters passed
@for $i from 1 through $max {
$value: (nth($values, $i)); //Take the individual parameter
$value: $value / ($value * 0 + 1); //Doing this gets you one unit (1px)
$value: $value / $em-base * 1em; //Divide the px value by emBase and return the value as em
$emValues: #{$emValues + $value}; //Append to array
@if $i < $max {
$emValues: #{$emValues + " "}; //Adding space between parameters (except last), if there are multiple parameters
}
}
@return $emValues; //Call emCalc like so emCalc(10, 20, 30, 40) it should return margin: 0.625em 1.25em 1.875em 2.5em
}
None of the answers here seem to take advantage of the fact that the syntax highlighting has already determined where all the comments are - just execute this in the Python console (View menu -> Show Console) to select all comments:
(press Enter after typing/pasting it to execute it) then press Delete to delete all the selections and Esc to go back to single selection mode
Well well, there is an easy way to do it in mac Sublime Text if you are sure there are no // in print statements.
search for
//
and hit thatcmd+ctrl+G
and then to select the whole line which has hitcmd+shift+Arrow
and delete it. Assuming you have used only single line commentsYou'll need to double check this (have a backup handy!), but the following regular expression should work in the "replace" window, with regular expressions enabled (the * icon):
*
icon is selectedEnter the following in the "Find What?" box
Leave the "replace with" box empty to delete found text.
Edit
as @ollie noted, this also will delete any urls prefixed with
//
. The following (lightly tested) regex should serve to better target comments:(^\/\/.*)|(\s+\/\/.*)
Edit v2
A solution for single and multi-line comments
(^\/\/.*)|(\s+\/\/.*)|((\/\*)(.|\n)+?(\*\/))
Here is what I do in ST3 in HTML to strip all comments, especially nasty comments embedded within
<p>
body text, for example ...package control install
SelectUntil
quit and restart sublime
ctrl+f
<!--
alt+enter to select all instances of
<!--
ctrl+shift+s will pull up an input field, where you can type:
-->
hit delete!
If you have no other possibility, you could select every
//
(Select first//
then CtrlD while there's comments left if my memory is correct).Then press ShiftEnd to select every end of line with a
//
and Del ! :)(There's probably a plugin for that, but this is the simplest method I think. This suggest that all your
//
refers to the beginning of a comment, of course)None of the other answers cover all cases (multi-line comments, single line comments, double-slash comments and slash-star/star-slash comments).
In order to match all possible cases (without matching URLs), use the following: