Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Insert Unicode

This is an extension for Visual Studio Code which adds commands for inserting Unicode characters/codes and Emoji.

The commands can be executed via the command palette (View > Command Palette.../ Ctrl + Shift + P) or bound to keyboard shortcuts.

No keys are bound by default. Use the command Preferences: Open Keyboard Shortcuts to add custom keyboard shortcuts.

Table of Contents

Features

In this section the various commands will be explained. Every subsection first lists the commands that it is about (the prefix common to all commands, Insert Unicode:, is omitted for brevity).

The command identifier (used in custom keyboard shortcuts) will be given in parentheses (again, the prefix insert-unicode. is omitted).

Inserting Individual Characters/Codes

  • Insert (insertText)
  • Insert as Decimal Code (insertDecimalCode)
  • Insert as Hex Code (insertCode)
  • Insert Exact (insertTextExact)
  • Insert Exact as Decimal Code (insertDecimalCodeExact)
  • Insert Exact as Hex Code (insertCodeExact)
  • Insert Emoji (insertEmojiText)
  • Insert Emoji as Decimal Code (insertEmojiDecimalCode)
  • Insert Emoji as Hex Code (insertEmojiHexCode)

These commands insert Unicode characters as text, decimal or hex codes.

The "exact" variants search for an exact name rather than a substring to facilitate faster insertion when the name is known (particularly useful for custom keyboard shortcuts).

The "Emoji" variants limit the search to characters classified as Emoji.

Example for Insert, searching for fire:

search-prompt

When binding a command to a keyboard shortcut, the search string can be provided as an argument. Note that the UI for binding keyboard shortcuts currently does not support setting arguments, so the JSON file has to be edited (execute command Preferences: Open Keyboard Shortcuts (JSON)).

E.g. to quickly insert skin tone modifier characters:

{
"key": "ctrl+e ctrl+f",
"command": "insert-unicode.insertText",
"args": "fitzpatrick"
}

The "exact" directly inserts a given character, e.g. FIRE, which otherwise would lead to multiple results, including characters like FIREWORKS and FIRE ENGINE:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertTextExact",
"args": "fire"
}

Insert From Favorites

  • Insert from Favorites (insertFavoriteText)
  • Insert from Favorites as Decimal Code (insertFavoriteDecimalCode)
  • Insert from Favorites as Hex Code (insertFavoriteHexCode)
  • Manage Favorites (manageFavorites)

These commands insert characters from a favorites directory tree.

favorites

Favorites can be configured via the Manage Favorites command, which opens an editor:

favorites

The buttons prefixed with + add new directories/favorite entries respectively. x removes directories/favorites. Clicking the folder icon in front of the directory name expands/collapses the contents. Directories can be renamed by clicking the name and editing it.

Save (Ctrl+S) saves changes to the settings files.
Revert reloads the favorites from the settings, discarding any changes.

Inserting/Replacing Text With a "Unicode Font"

  • Insert/Replace Text With "Unicode Font" (insertFont)

This command inserts/replaces Latin alphabetic characters with Unicode variants that give them another appearance. Whether these characters can be displayed properly depends on the font, of course.

When the command is invoked the user can select the font style:

font-prompt

This command can also be bound using an argument to specify the font, e.g.:

{
"key": "ctrl+e f",
"command": "insert-unicode.insertFont",
"args": "Math Fraktur Bold"
}

Identify Unicode Characters

  • Identify Characters (identify)

This command will show the Unicode name and code point of the selected characters.

Example text:

🇳🇵👌🏻🔥

Output:

🇳: REGIONAL INDICATOR SYMBOL LETTER N (0x1f1f3)
🇵: REGIONAL INDICATOR SYMBOL LETTER P (0x1f1f5)
👌: OK HAND SIGN (0x1f44c)
🏻: EMOJI MODIFIER FITZPATRICK TYPE-1-2 (0x1f3fb)
🔥: FIRE (0x1f525)

Note that joint characters are split up in the analysis.

The message window will not display line breaks, but there is a button that opens the result in a new file. Right clicking the notification and selecting "Copy" will also preserve the line breaks.

You can always open the output in a new file by changing the setting Show Identified Characters in File (show-identified-characters-in-file).

Identify View

There also is the Identify view in the Explorer sidebar which performs the identification of characters in the current selection on the fly. The view can be dragged to its own or another section as well as hidden via the context menu on the section title.

Identify view example

There are settings for adjusting the update rate and maximal number of identified characters if performance adjustments are necessary. While the view is not visible (i.e. collapsed or hidden) it will not perform any lookups.

Direct Hex Code Input

  • Insert from Hex Code (fromHexCode)

If you happen to know the exact hexadecimal code, this command can be used to insert the corresponding character.

Unicode Data Table

  • Data Table (dataTable)

Shows the Unicode data set as a big data table.

data table example

The entries are filtered according to the settings Include Sequences (include-sequences) and Include Skin Tone Variants (include-skin-tone-variants).

Recently Used Characters

When inserting individual characters, the extension keeps track of recently used entries and subsequently shows them at the top of list.

This behavior can be disabled via the option Enable Recently Used (enableRecentlyUsed). The length of this list can be set via Recently Used Limit (recentlyUsedLimit).

The command Clear Recently Used List (clearRecentlyUsed) clears this temporary list.

How To?

Insert Compound Characters, Apply Accents and Modifiers

If you e.g. want to apply a grave accent to an e (resulting in ), you first type out the character to be modified and then insert the modifier, in this case COMBINING GRAVE ACCENT (0x300).

Modifiers that can be applied to the previous character generally have combining in their name. The stand-alone character version of grave accent would be GRAVE ACCENT (0x60).

There is another method of combining characters that uses a dedicated character for joining other characters, e.g. the ZERO WIDTH JOINER (0x200d) which is used e.g. in the various family emoji. The family consisting of a man, woman and a girl (👨‍👩‍👧), e.g. is written as MANZWJWOMANZWJGIRL (0x1f4680x200d0x1f4690x200d0x1f467).

In general, if you see a special character or symbol and do not know how to write it, try copying it into VS Code and execute the Identify Characters command on it.

Unicode Standards Versions

  • Unicode Standard: 15.0.0
  • Unicode Emoji: 15.0

Known Issues

  • Some of "fonts" do not convert correctly.
  • The unicode fonts may confuse word wrapping, which is an issue on the side of VS Code itself.

Attribution

About

A Visual Studio Code extension which adds commands for inserting unicode characters/codes.

Topics

Resources

Stars

42 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages