5 Must-Have Vim Plugins That Will Change Your Workflow

5 Must-Have Vim Plugins That Will Change Your Workflow. In my case

  • Syntastic: a syntax checking plugin for Vim which runs files through external syntax checkers and displays resulting errors.
  • Fugitive: a Git wrapper for Vim that is self-described as “so awesome, it should be illegal.”
  • Emmet: an extremely useful plugin for web developers. It makes writing and editing HTML, and any language with tags, much easier.

SpaceVim effectively provide alternatives to NERDTree, a file system explorer for Vim

User-specific hosts file to complement /etc/hosts

Any user can create a personal list of hosts to complement the entries in the /etc/hosts file.

The functionality is implemented in glibc. You can define a custom hosts file by setting the HOSTALIASES environment variable. The names in this file will be picked up by gethostbyname (see documentation).

$ echo 'g www.google.com' >> ~/.hosts
$ export HOSTALIASES=~/.hosts
$ wget g -O /dev/null
Slightly edited from: Can I create a user-specific hosts file to complement /etc/hosts? – Unix & Linux Stack Exchange

Using CSV File as data storage and access

Thanks adamchainz!

You can use “CSV” table storage in (at least) these database backends:

However these will be slow though. Changes to CSV based tables require a lot of parsing and re-saving.

It’s probably better to import the CSV into a table with an optimized storage engine, and export it again later. django-import-export can help with that: https://pypi.org/project/django-import-export/

Source: Using CSV File as data storage and access

My little printer-friendly CSS

Here is my little “Printer friendly CSS” that I add to each and every page using Simple Custom CSS and JS

/* override styles when printing */
@media print {
	@page {
		margin: 2cm; 
		@top-center {
			font-family: sans-serif;
			font-weight: bold;
			font-size: 2em;
			content: counter(page);
		}
	}
	/* target the first page only */
	@page :first { margin-top: 6cm; }
	/* target left (even-numbered) pages only */
	@page :left { margin-right: 2cm; }
	/* target right (odd-numbered) pages only */
	@page :right { margin-left: 2cm; }
	
	
	body {
		font-size: 16pt;
		line-height: 1.2;
		/*margin: 1cm;*/
		color: #000;
		background-color: #fff;
		border: 1mm black;
	}
	/* header, */
	footer, aside, nav, form, iframe, .menu, .hero, .adslot, .header-bottom, .site-header, .header-middle {
		display: none;
	}
	
	h2.entry-title {
		font-size: 32pt;
	}
	
	/* page breaks before main header */
	h1 {
		break-before: page; 
	}
	/* don't break tables and pictures*/ 
	table, img, svg {
		break-inside: avoid;
	}
	
	/* avoid too small text */
	body,p {
		font-size: 16pt;
		line-height: 1.2;
	}
	article {
		width: 100%;
		/* no columns please 
		** column-width: 19cm;
		** column-gap: 0.5cm;
		*/
	}
	
	/* no background images */
	* {
		background-image: none !important;
	}
	
	 /* styling links */
	a {
		font-size: 80%;
	}
	a::after {
		content: " (" attr(href) ")";
		overflow-wrap: break-word;
	}
	
	
	/* don't display unimportang pictures */
	/* img, svg {
	**	display: none !important;
	** }
	*/
	
	/* make picture big */
	img.print, svg.print {
		display: block;
		max-width: 100%;
	}
	
	/* don't show comments */
	#comments {
		display: none;
	}
	
	/* don't show tables of contents */
	.wp-block-uagb-table-of-contents, .advgb-toc {
		display: none;
	}
}

I use it with News-box theme but it should work fine with any other “pretty modern” theme.

I started reading How to Create Printer-friendly Pages with CSS (local copy)

Converting a multi page pdf to multiple pages using a single command

imagemagick – Converting a multi page pdf to multiple pages using a single command – Stack Overflow

It’s as simple as

convert x.pdf x-%04d.jpg

Where 4 means 4 digits will be show on the page count. You can change jpg to webp or whatever and ImageMagick understand it.

The codes used are the same of the printf function of standard library of the C programming language