可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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
}
回答1:
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)
回答2:
You'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):
- Open the "replace" window (ctrl + h / cmd + option + f)
- Enable regular expression matching by making sure the
*
icon is selected
Enter the following in the "Find What?" box
\/\/.*
Leave the "replace with" box empty to delete found text.
- Click "Replace All"
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)+?(\*\/))
回答3:
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:
(^[\s]*?\/\/.*)|(/\*[\s\S]+?\*/)
回答4:
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!
回答5:
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:
view.sel().clear(); view.sel().add_all(view.find_by_selector('comment'))
(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
回答6:
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 that cmd+ctrl+G
and then to select the whole line which has hit cmd+shift+Arrow
and delete it. Assuming you have used only single line comments