- Capital letters do the opposite of small letters in command (Press shift to trigger capital letters)
 _(underscore) to move the cursor at the beginning of line (doesn't switch to insert mode)0(zero) moves the cursor to the zeroth position of the line (doesn't switch to insert mode)
$(dollar) to move the cursor at the end of line (doesn't switch to insert mode)d$will delete from wherever your cursor is till the end of the linef<character>to move cursor to the first occurrence of<character>f(to move cursor to first occurence of(
t<character>to move cursor to upto but not on the first occurrence of<character>t(to move cursor to first occurence of(
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | import { ActivatedRoute, Router } from '@angular/router'; | |
| import { QueryParamsTracker } from './query-params-tracker'; | |
| import { | |
| QueryParamsMapper, | |
| SourceValueMapper, | |
| } from './query-params-tracker.types'; | |
| export interface IQueryParamsTrackerBuilder< | |
| TValue, | |
| TParams = TValue, | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | export interface ICacheOptions { | |
| /** | |
| * Кастомное хранилище кэша, если не передать, | |
| * то будет использоваться стандартное хранилище `CacheService` из `RootModule`. | |
| * | |
| * @default CacheService - хранилище из `RootModule`. | |
| */ | |
| storage?: ICacheStorage; | |
| /** | |
| * `Observable` инвалидации кэша. | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | // Spy on any element to which it is applied. | |
| // Usage: <div appSpy>...</div> | |
| @Directive({ selector: '[appSpy]' }) | |
| export class SpyDirective implements OnInit, OnDestroy { | |
| constructor(private logger: LoggerService) { } | |
| ngOnInit() { | |
| this.logger.log(`Spy: onInit`); | |
| } | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | import { Injectable, OnDestroy } from '@angular/core'; | |
| import { Subject } from 'rxjs'; | |
| /** | |
| * Сервис реализующий "живой" поток пока компонент не будет удален, | |
| * после удаления завершает поток. | |
| * | |
| * @see {@link https://medium.com/ngx/why-do-you-need-unsubscribe-ee0c62b5d21f| | |
| * Ссылка на статью, параграф - 'Использование сервиса NgOnDestroy'} | |
| * | 
See how a minor change to your commit message style can make a difference.
git commit -m"<type>(<optional scope>): <description>" \ -m"<optional body>" \ -m"<optional footer>"
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft,elem.offsetTop,elem.offsetWidth,elem.offsetHeight,elem.offsetParent