Objectives:

1. To show a canvas bounding box with a specified size in advance. 
In other words, I want to create a `\begin{pspicture}(-2,-2)(3,3)`-like canvas before drawing other objects inside it. I don't like auto-determined canvas size produced by Tikz because of some reasons.
2. To show the colored grid with numbers along its axes for navigation purpose. It also clips any objects beyond its boundary. The grid can be applied to the canvas in 2 ways: permanent and temporary.
3. To hide **GLOBALLY** the temporary grid at the final phase without having to make adjustment one by one per `\tikzpicture` (that is tedious).

It is better if I provide the example in PSTricks to make it clearer.

---

PSTricks
--------

![alt text](https://i.stack.imgur.com/IN6DB.png)

```
\documentclass[dvipsnames,dvips,rgb]{minimal}
\usepackage{pstricks}

\newpsstyle{gridstyle}{%
gridwidth=0.4pt,%default: 0.8pt
gridcolor=Red!10,%default: black
griddots=0,%default: 0 
%
gridlabels=3pt,%default: 10pt
gridlabelcolor=Blue,%default: black
%
subgriddiv=5,%default: 5
subgridwidth=0.2pt,%default: 0.4pt
subgridcolor=Green!10,%default: gray
subgriddots=0%default: 0
}

\psset{style=gridstyle}

%To remove the grid globally, please remove th following comment. 
%\let\psgrid\relax

\begin{document}

\begin{pspicture}[showgrid](-2,-2)(3,3)
    %Permanent grid has been setup.
    %other objects start from here
    \pscircle[fillstyle=solid,opacity=0.25,fillcolor=red](0.5,0.5){2}  
\end{pspicture} 

\vspace{1cm}

\begin{pspicture}(-2,-2)(3,3)
    \psgrid%this is a temporary grid that can be hidden globally later.
    %other objects start from here
    \pscircle[fillstyle=solid,opacity=0.25,fillcolor=red](0.5,0.5){2}  
\end{pspicture} 
\end{document}

```

---

PGF/Tikz
--------

My attempt below did not produce the same figure as the PSTricks did above.

![alt text](https://i.stack.imgur.com/heSVT.png)

```
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\clip (-2,-2) rectangle (3,3);
\draw (-2,-2) grid (3,3);
\draw[opacity=0.25,fill=red] (0.5,0.5) circle (2); 
\end{tikzpicture}
\end{document}

```

---

First attempt based on @Torbjorn's suggestion
---------------------------------------------

It is better but not similar to the PSTricks one given above.

```
\documentclass{minimal}
\usepackage{tikz}
\begin{document}

\newcommand{\grid}[4]{\draw [green] (#1,#2) grid (#3,#4);}

\begin{tikzpicture}
\clip (-2,-2) rectangle (3,3);
\draw [opacity=0.25,fill=red,draw=black] (0.5,0.5) circle (2); 
\draw [green] (-2,-2) grid (3,3);%Permanent
\end{tikzpicture}

\vspace{1cm}

\begin{tikzpicture}
\clip (-2,-2) rectangle (3,3);
\draw [opacity=0.25,fill=red,draw=black] (0.5,0.5) circle (2); 
%
%I hope it to be temporarily grid that can be removed globally later.
\grid{-2}{-2}{3}{3}
\end{tikzpicture}
\end{document}

```