I often find myself going through text files replacing German umlauts, for example:
ä -> ae
ü -> ue
ö -> oe
ß -> sz
the same applies for their capitalized variants
Going through find/replace for this is tedious, so I wonder if there's a bundle for this or if someone could come up with a small code snippet?
Although I don't know of any bundle that does that specific task, remember that TextMate has the ability to execute any scripting language that recognizes the shebang (#!) sequence as a language indicator, so if you're familiar with PHP, Perl, bash, Ruby or anything else that can use it, you can simply write a command, perhaps adding it to the existing Text bundle. Alternatively, you could record a macro (Bundles>Macros>Start Recording) of the steps you take to accomplish the find/replace.
If you are editing an HTML or PHP file you just need to hit ⌘+& to replace all "special characters" in your selection with their HTML Entities counterpart.
If it's not an HTML document you can still use the cog menu at the bottom of the window and navigate to HTML -> Entities -> Convert Selection to Entities.
Edit:
You can do this by recording and saving a macro. Here is how I'd do it:
Start recording your macro
Bundle -> Macros -> Start Recording
Do consecutive searches & replaces for all the special characters you want to convert.
Stop recording.
Save the macro and give it a keyboard shortcut.
Related
I would like to make my own version of Mac's ABC-Extended keyboard for typing Pinyin (a way to write Mandarin that indicates tones). But when I use Xcode, I just see a target custom keyboard extension for iOS and nothing for macOS. I've looked into the program Ukulele but it doesn't seem like it will do everything I need. Theoretically I could also put my rules into files like how this article indicates but that also seems cumbersome based on what I want my keyboard to do.
Here's what I want it to do:
First option: user literally types "ni3 hao3" and my logic in real time changes their output to "nǐ hǎo" (there are pinyin/grammar rules for where the tone mark goes)
Secondly (phase 2 in my project), in their user settings for the keyboard, they could indicate they want to convert their text to Hanzi (the characters). So when they type their Pinyin, my algorithm guesses a best guess list of Hanzi characters that matches their Pinyin entry. This would require that I have a downloaded dictionary file for my keyboard.
Thanks for any help! I know how to program it I just need the right software to use :(
I am trying to create a test csv file for a file cleaning script that is supposed to normalize all whitespace into "normal"/ "regular" whitespace character. The idea is I will insert a bunch of these oddball whitespace characters into this test file in some various locations.
Here are some sites that show these various and oddball whitespaces
https://en.wikipedia.org/wiki/Whitespace_character
http://jkorpela.fi/chars/spaces.html
I've tried to copy and paste from sources like that website but it seems like they always paste in as a normal space in Textmate. It could be that I am not copying what I think I am copying. In the past I've been able to copy and paste into Textmate special / unicode characters when I can clearly see what I am copying but with whitespace characters, I can't confirm since I can can't see it, so I am not sure if the problem is where I am copying from or that Textmate is converting it to the normal space when I paste it in.
If it is easier to use Textedit (the built in editor) or nano (command line editor) to do this I could use those. Or if there is another way other than copying and pasting that is better to get these into Textmate that would be an option.
I am on a MacbookPro running High Sierra MacOS.
If you have LibreOffice installed you can use the spreadsheet application to create these using their hexidecimal equivalent in 1 cell then doing a conversion using
=unichar(hex2dec(cell_ref_to_1rst_cell)).
Far less confusing and you can save the spreadsheet complete with comments as a handy reference. Then you should just be able to copy paste the cell with the unicode character when required.
If you’re using TextMate, various functions provided by the Unicode bundle could be helpful here (install via Preferences → Bundles → Unicode).
With this bundle installed you can use Insert Unicode Character ⌃⌥⌘I to insert a character by name. Search for “space” to get a list of all space characters, then simply click on the desired character (the full title of a character is shown on hover):
Of course once inserted all the space characters look almost identical. To identify them, use Show Unicode Name(s) ⌃⌥⌘U 6. This will display a tooltip showing the unicode of name of the character directly before the cursor (or the names of all selected characters, if a selection is active).
Also have a look at Show Character Inventory (press ⌃⌥⌘U and then select the command from the popup menu): This provides a convenient overview of all the characters in your document (or in the selected text, if a selection is active).
I'm working in a project that uses the standard javascript syntax. It's nice, but it uses spaces for indentation. Is there some way to make double spaces work as tabs, with the ability to set tab-space etc?
As far as I know, this is not possible. Spaces and tabs are different by nature and they're also used differently in different projects. Some projects prefer to maintain the standard of only spaces, or tab and spaces or only tabs.
What you're asking is basically: is it possible to show all letters A as a letter O?
However, something that might help for your case is automatic indentation / code beautifier. Most code editors have this feature and it basically indents your code based on a standard (which you most of the time can customize).
If you're using PHP Storm for example, the shortcut ctrl + alt + L will indent and beautify your code. On the ATOM editor you can install a package to add that feature.
Keep in mind that messing about with indentation might cause conflicts with git if you're part of a team. And, if you're part of a team it's always better to keep their standards anyway.
As a final note, spaces vs tabs is a religious war. Try to keep your team's or library standard is a good recommendation most of the time.
Can anyone tell me if there's a quick way to format your code in Text Mate, similar to pressing ctrl K+D in Visual studio?
Thanks!
Edit by Damien_The_Unbeliever:
For those not familiar with Ctrl K+D, it doesn't just indent code - it reformats it using the generally established formatting conventions in the editor - it may replace spaces with tabs or vice-versa for the indentation, ensure code is consistently indented, move braces to separate lines, etc.
TextMate reindenting and reformatting varies a little depending on the language you're using.
You can generally use the Text menu, that depending wether you have an active selection or not it will show you different commands under it. For example, if you have selected a section of code, there will be a Indent Selection menu item. If you have no active selection, it will be Indent Line.
To have this working properly, be sure to select the current language, if it isn't assigned yet (like on unsaved documents). If you're working with HTML, it will simply indent the lines depending on what's above it. It will keep line breaks intact.
If you need something to break out tags on new lines and properly format the document, you should use the Tidy command that is found in the Bundles menu, under HTML (or simply by using the shortcut CTRL+SHIFT+H. If you have a selection active at the moment that you use it, it will simply reindent that section. If instead you have no selection, it will properly reformat the whole document, including checking for tag validity and other errors.
The Bundles for other language have similar commands, like XML (still Tidy) and Javascript (that has a Reformat Document command).
As an ending note, I simply suggest to look into the Bundles menu; there are many little gems in it. ;)
Did you look in the menu bar? Under Text you have a couple of Reformat… entries that may fit your needs.
Beside these native features, some bundles — like the JavaScript one — have custom Reformat… commands : click on the little cog button at the bottom and explore your current language's bundle's content.
i start to love textmate, but there is one feature i miss in textmate, which i always used in notepad++ or eclipse.
if you double click on a word in the text you get every word which is equally spelled like this. this feature makes code reading so easy, especially it is foreign code, so i thought to write a bundle for textmate on my own.
i am familiar with reg-ex and i think it is not a problem to use sed to find the usage of $TM_CURRENT_WORD in the document.
my problem:
i have never writen a textmate bundle and i don't know if there is a possibility to mark text out of a tm-bundle. i have not found an example code in a different bundle and i also don't know which "output" to use in the bundle editor, because no suggestion would fit to my problem.
any hint would help, thank you very much!
You might be able to read the whole document, then do a find yourself for the (word the user selected), then output HTML (with the word selected in a CSS class or something)... which sounds like a fair bit of effort.
My pattern for this is:
Edit -> Find -> Use Selection for Find (Command + E)
then
Edit -> Find -> Find Next
Edit -> Find -> Find Next
So Command+E, Command+G, Command+G