We can use MeshFunction in ComplexContourPlot.
Clear[f]; f[z_] = Exp[-z] - z; ComplexContourPlot[{Re[f[z]] == 0}, {z, -20 - 20 I, 20 + 20 I}, MeshFunctions -> {Im[f[#]] &}, Mesh -> {{{0}}}, MeshStyle -> Directive[{PointSize[Large], Red}], ContourStyle -> None]

Clear[f, fig1, fig2]; f[z_] = Exp[-z] - z; fig1 = ComplexContourPlot[{Re[f[z]] == 0}, {z, -20 - 20 I, 20 + 20 I}, MeshFunctions -> {Im[f[#]] &}, Mesh -> {{{0}}}, MeshStyle -> Directive[{PointSize[Large], Red}], ContourStyle -> Brown]; fig2 = ComplexContourPlot[{Im[f[z]] == 0}, {z, -20 - 20 I, 20 + 20 I}, MeshFunctions -> {Re[f[#]] &}, Mesh -> {{{0}}}, MeshStyle -> Directive[{PointSize[Large], Red}], ContourStyle -> Cyan]; Show[fig1, fig2]

Compare with the approach which use NSolve.
roots = NSolve[{Exp[-z] - z == 0, -20 <= Re[z] <= 20, -20 <= Im[z] <= 20}]; ListPlot[ReIm[z] /. roots, PlotStyle -> Directive[{PointSize[Large], Red}], PlotRange -> {{-20, 20}, {-20, 20}}, AspectRatio -> Automatic]

Appendix
For another function,NSolve missing some roots.
Clear[f, fig1, fig2]; f[z_] = Sin[z + Sin[z + Sin[z]]] - Cos[z + Cos[z + Cos[z]]]; fig1 = ComplexContourPlot[{Re[f[z]] == 0, Im[f[z]] == 0}, {z, -5 - 4 I, 5 + 4 I}, PlotPoints -> 100, ContourStyle -> {Directive[Brown, Thin], Directive[Cyan, Thin]}, ImageSize -> Full]; roots = NSolve[{f[z] == 0, -5 <= Re[z] <= 5, -4 <= Im[z] <= 4}]; fig2 = ListPlot[ReIm[z] /. roots, PlotStyle -> Directive[{PointSize[Small], Red}], PlotRange -> {{-5, 5}, {-4, 4}}, AspectRatio -> Automatic]; Show[fig1, fig2, ImageSize -> Full]
