How to install Visual Studio Code

Visual Studio Code (VSCode) is easy to install and configure. You just need to remember a few keyboard shortcuts.

  • Download the latest .deb file of VSCode from here.

  • VSCode is being developed rapidly and new releases appear frequently. If you have an older version of VSCode, uninstall it first:

$ sudo apt remove code
  • Install the downloaded VSCode:
$ sudo dpkg -i vscode-you-downloaded.deb
  • Start in a root directory of your code:
$ code .
  • VSCode will start up using all the files and directories inside the current directory as belonging to a project. While it is indexing the files, you will see a red flame icon in bottom-right corner. Once the flame goes away, you are ready to edit files!

  • Extensions: VSCode is no fun without extensions for your favorite languages (say C++ or Python) or your favorite features (say Vim). To install extensions use keyboard shortcut Ctrl+P and type ext install. You can search and install extensions from the VSCode Marketplace. Many extensions might restart VSCode to get enabled.

  • Settings: VSCode can handle both user settings (works across all projects) and workspace settings (works only for a particular project). All settings are set in JSON files. You can choose File → Preferences to open these. To set something, you need to copy that line from default settings to settings.json.

Tried with: Visual Studio Code 1.4 and Ubuntu 16.04

Visual Studio Code extensions that I use

  • CPP Tools: The official extension for working with C++ code. Automatically indexes all code in the currently open directory, offers auto-completion and syntax highlighting.

  • Python by Don Jayamanne: There are many Python extensions, but this seems to be the most popular one. Syntax highlighting, indexing and code completion.

  • Vim: There are many Vim extensions, but this seems to be the most popular one. It has entire universes to traverse before it can be as good as Vrapper, the Vim extension for Eclipse. This VSCode extension offers very basic navigation and editing commands.

  • Git Blame: This extension does one little thing that I need everyday to work with code from other people: know who modified a line of code. This extension shows that for the current line in the status bar.

  • Matlab: I need to regularly browse through some MATLAB files. This extension offers syntax highlighting of Matlab files.

Tried with: Visual Studio Code 1.4 and Ubuntu 16.04

RefControl extension for Firefox

RefControl is an extension for Firefox that can be used to set the value of referer field sent to HTTP servers for certain webpages. This extension is similar to the Referer Control extension for Chrome.

You can change the referer directly in the extension preferences. A more friendly method is to visit the webpage and then click on this extension’s icon and choose RefControl options for this site to set for this specific website. The changes will take effect only if you start browsing from a new tab or might require a restart of Firefox.

More details on the usage of this extension from its author can be found here.

Tried with: RefControl 0.8.17.1, Firefox 41 and Ubuntu 14.04

Live HTTP Headers extension for Firefox

Live HTTP Headers is an extension for Firefox that can be used to view the HTTP headers sent and received when a webpage is loaded. This is useful, for example, to determine what the values in certain header fields are.

Installation requires a reboot. After that, click on the extension icon to open its recording window. Visit the webpage you want to monitor and you can see the HTTP headers logged in this extension window. You can save all the headers to a text file to analyze them.

Tried with: Live HTTP Headers 0.17.1, Firefox 41 and Ubuntu 14.04

Shareaholic extension for Firefox

Shareaholic is a service for sharing content to different social networks and services. I only use its extension for Firefox from here. This provides me ability to share the current URL to other services, just like I can do in Android.

  • It adds a button to the addressbar. Click it to view your services you can share to and to customize its Options.

  • I recommend going through its Options and enabling only the services you need.

  • I use Shareaholic to share the URL of a webpage I’m viewing using Gmail or Twitter to other friends.

Tried with: Shareaholic 3.0.1.1, Firefox 41 and Ubuntu 14.04

Emoji Cheatsheet extension for Firefox

It has become common to view and add Emoji 😝😈😬 to emails, tweets, blogposts or any text on the web.

Emoji Cheatsheet (also known as Emoji Helper) is a fantastic extension for Firefox that is an emoji picker. It helps to pick emoji from a gallery and insert into any text input or copy to clipboard. The emoji you picked can be inserted as Unicode character, as text code (like that used in Github) or an image (for old applications). Almost all the emoji you see available on your smartphone seems to be in its collection.

  • Emoji Cheatsheet can be installed from here.

  • Check the extension preferences for picking your preferred mode (Unicode, text code or image), keyboard shortcut and other goodies!

Tried with: Emoji Cheatsheet 1.1.1, Firefox 41.0 and Ubuntu 14.04

How to customize Firefox UI

Most of the components of the Firefox user interface can be removed, added or moved around easily. This is quite a difference from Chrome, where such functionality is quite limited.

For example, I like to hide the search bar, remove or move around the buttons that my extensions put in the toolbar.

Doing all this is easy. Just go to Settings -> Customize. Now you can grab any UI component (bar or button) and move them between the toolbar, the Additional Tools and Features window or the Customize window.

Tried with: Firefox 41 and Ubuntu 15.10

Emoji Input extension for Chrome

20150818_emoji_input

Emoji has become a popular feature in smartphone messaging apps like Whatsapp. The Emoji Input extension can be used to similarly pick Emoji to insert into emails and other websites in Chrome.

Just install, click its smiley face icon in the taskbar and click on any emoticon to insert it into your text field. The emoticon can also be copied to clipboard, so this extension can also act as a emoji picker on Ubuntu/Linux where no such tool is available.

Tried with: Emoji Input 2.6.4, Chrome 44.0.2403.125 (64-bit) and Ubuntu 14.04

LivePage extension for Chrome

The LivePage extension for Chrome is useful if you want to view a HTML page or file and want it to be refreshed as soon as it is updated. This can be useful if you are editing or producing the HTML file. For example, I use it to view the HTML file produced by compiling a ASCIIDoc or ASCIIDoctor file.

  • Open the local or internet webpage and click the LivePage icon. The page will be refreshed as soon as it is changed.

  • Note: If you want to refresh local HTML files, head to Chrome Extensions section, scroll down to LivePage and enable the Allow access to file URLs checkbox.

Tried with: LivePage 1.5.2, Chrome 40.0.2214.115 (64-bit) and Ubuntu 14.04

Record extension for Mercurial

Record is an important extension for Mercurial and it ships along with it. It provides the record command, using which you can pick and choose which changes and modified files you want to commit. It feeds you the changes and modified files in an interactive format, so you do not have to type out long paths or other specifications.

You can specify which of the modified files you want to commit to the commit command, but typing out the file paths like that is cumbersome. Also, it does not allow you to pick and choose changes inside a file. I feel that the record command is better for this use case.

To enable the Record extension, add these lines to your hgrc:

[extensions]
record =

Using it is as simple as:

$ hg record

For each change or file it shows, you can provide one of these inputs:

y - record this change
n - skip this change

s - skip remaining changes to this file
f - record remaining changes to this file

d - done, skip remaining changes and files
a - record all changes to all remaining files
q - quit, recording no changes

? - display help

Tried with: Mercurial 2.8.2 and Ubuntu 14.04